<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/gitlab/gitlab-ce.git/app/services/users/destroy_service.rb, branch docs-pages-https</title>
<subtitle>gitlab.com: gitlab-org/gitlab-ce.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/'/>
<entry>
<title>Remove soft removals related code</title>
<updated>2018-01-08T16:04:45+00:00</updated>
<author>
<name>Yorick Peterse</name>
<email>yorickpeterse@gmail.com</email>
</author>
<published>2018-01-02T16:21:28+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=d0b8f536a1865af3741fc3255325b7e211ed1d42'/>
<id>d0b8f536a1865af3741fc3255325b7e211ed1d42</id>
<content type='text'>
This removes all usage of soft removals except for the "pending delete"
system implemented for projects. This in turn simplifies all the query
plans of the models that used soft removals. Since we don't really use
soft removals for anything useful there's no point in keeping it around.

This _does_ mean that hard removals of issues (which only admins can do
if I'm not mistaken) can influence the "iid" values, but that code is
broken to begin with. More on this (and how to fix it) can be found in
https://gitlab.com/gitlab-org/gitlab-ce/issues/31114.

Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/37447
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This removes all usage of soft removals except for the "pending delete"
system implemented for projects. This in turn simplifies all the query
plans of the models that used soft removals. Since we don't really use
soft removals for anything useful there's no point in keeping it around.

This _does_ mean that hard removals of issues (which only admins can do
if I'm not mistaken) can influence the "iid" values, but that code is
broken to begin with. More on this (and how to fix it) can be found in
https://gitlab.com/gitlab-org/gitlab-ce/issues/31114.

Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/37447
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix user membership destroy relation</title>
<updated>2018-01-02T15:06:44+00:00</updated>
<author>
<name>Francisco Javier López</name>
<email>fjlopez@gitlab.com</email>
</author>
<published>2018-01-02T15:06:44+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=2665aea6275cc82888ed3e3ab3dbe384028d663c'/>
<id>2665aea6275cc82888ed3e3ab3dbe384028d663c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Make sure repository's removal work for legacy and hashed storages</title>
<updated>2017-08-22T04:33:20+00:00</updated>
<author>
<name>Gabriel Mazetto</name>
<email>brodock@gmail.com</email>
</author>
<published>2017-08-21T13:28:07+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=fb9e059a412d95ee3b7442a472ecfd9c67eafd7b'/>
<id>fb9e059a412d95ee3b7442a472ecfd9c67eafd7b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix current feature related specs</title>
<updated>2017-06-28T10:32:34+00:00</updated>
<author>
<name>Tiago Botelho</name>
<email>tiagonbotelho@hotmail.com</email>
</author>
<published>2017-06-15T12:06:49+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=34f57b462bc14ad194cf890a4585d403bdbde55c'/>
<id>34f57b462bc14ad194cf890a4585d403bdbde55c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor the DeleteUserWorker</title>
<updated>2017-06-05T12:08:06+00:00</updated>
<author>
<name>Nick Thomas</name>
<email>nick@gitlab.com</email>
</author>
<published>2017-06-02T13:18:24+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=158581a447bb4976161eca26ddcb2fccd25888ab'/>
<id>158581a447bb4976161eca26ddcb2fccd25888ab</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Hard delete users' associated records deleted from AbuseReports</title>
<updated>2017-04-16T15:36:33+00:00</updated>
<author>
<name>Stan Hu</name>
<email>stanhu@gmail.com</email>
</author>
<published>2017-04-16T15:21:40+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=60eee739f040e997d6dac3f4e21ef90daa6c7f30'/>
<id>60eee739f040e997d6dac3f4e21ef90daa6c7f30</id>
<content type='text'>
In the case of spammers, we really want a hard delete to avoid retaining spam.

Closes #31021
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the case of spammers, we really want a hard delete to avoid retaining spam.

Closes #31021
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement review comments from @DouweM for !10467.</title>
<updated>2017-04-06T17:09:40+00:00</updated>
<author>
<name>Timothy Andrew</name>
<email>mail@timothyandrew.net</email>
</author>
<published>2017-04-06T17:03:07+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=1c42505b026d922df50c59d5f9e85073b5f5345f'/>
<id>1c42505b026d922df50c59d5f9e85073b5f5345f</id>
<content type='text'>
1. Have `MigrateToGhostUser` be a service rather than a mixed-in module, to keep
   things explicit. Specs testing the behavior of this class are moved into a
   separate service spec file.

2. Add a `user.reported_abuse_reports` association to make the
   `migrate_abuse_reports` method more consistent with the other `migrate_`
   methods.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
1. Have `MigrateToGhostUser` be a service rather than a mixed-in module, to keep
   things explicit. Specs testing the behavior of this class are moved into a
   separate service spec file.

2. Add a `user.reported_abuse_reports` association to make the
   `migrate_abuse_reports` method more consistent with the other `migrate_`
   methods.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move a user's merge requests to the ghost user.</title>
<updated>2017-04-06T13:28:57+00:00</updated>
<author>
<name>Timothy Andrew</name>
<email>mail@timothyandrew.net</email>
</author>
<published>2017-04-05T07:20:53+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=72580f07af5a2c1e4df6bbc339ad804b5f5bb9ed'/>
<id>72580f07af5a2c1e4df6bbc339ad804b5f5bb9ed</id>
<content type='text'>
1. When the user is deleted.

2. Refactor out code relating to "migrating records to the ghost user" into a
   `MigrateToGhostUser` concern, which is tested using a shared example.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
1. When the user is deleted.

2. Refactor out code relating to "migrating records to the ghost user" into a
   `MigrateToGhostUser` concern, which is tested using a shared example.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix race condition where a namespace would be deleted before a project was deleted</title>
<updated>2017-04-02T12:37:04+00:00</updated>
<author>
<name>Stan Hu</name>
<email>stanhu@gmail.com</email>
</author>
<published>2017-03-31T23:59:46+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=8a71d40e60c799f969af0ed255e931b6c9907634'/>
<id>8a71d40e60c799f969af0ed255e931b6c9907634</id>
<content type='text'>
When deleting a user, the following sequence could happen:

1. Project `mygroup/myproject` is scheduled for deletion
2. The group `mygroup` is deleted
3. Sidekiq worker runs to delete `mygroup/myproject`, but the namespace and routes have
   been destroyed.

Closes #30334
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When deleting a user, the following sequence could happen:

1. Project `mygroup/myproject` is scheduled for deletion
2. The group `mygroup` is deleted
3. Sidekiq worker runs to delete `mygroup/myproject`, but the namespace and routes have
   been destroyed.

Closes #30334
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't allow deleting a ghost user.</title>
<updated>2017-02-24T11:20:20+00:00</updated>
<author>
<name>Timothy Andrew</name>
<email>mail@timothyandrew.net</email>
</author>
<published>2017-02-17T14:58:12+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/gitlab/gitlab-ce.git/commit/?id=6fdb17cbbe5dc70d18f50e9d131ab70407976a71'/>
<id>6fdb17cbbe5dc70d18f50e9d131ab70407976a71</id>
<content type='text'>
- Add a `destroy_user` ability. This didn't exist before, and was implicit in
  other abilities (only admins could access the admin area, so only they could
  destroy all users; a user can only access their own account page, and so can
  destroy only themselves).

- Grant this ability to admins, and when the current user is trying to destroy
  themselves. Disallow destroying ghost users in all cases.

- Modify the `Users::DestroyService` to check this ability. Also check it in
  views to decide whether or not to show the "Delete User" button.

- Add a short summary of the Ghost User to the bio.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Add a `destroy_user` ability. This didn't exist before, and was implicit in
  other abilities (only admins could access the admin area, so only they could
  destroy all users; a user can only access their own account page, and so can
  destroy only themselves).

- Grant this ability to admins, and when the current user is trying to destroy
  themselves. Disallow destroying ghost users in all cases.

- Modify the `Users::DestroyService` to check this ability. Also check it in
  views to decide whether or not to show the "Delete User" button.

- Add a short summary of the Ghost User to the bio.
</pre>
</div>
</content>
</entry>
</feed>
