summaryrefslogtreecommitdiff
path: root/app/services/users/destroy_service.rb
Commit message (Collapse)AuthorAgeFilesLines
* Add latest changes from gitlab-org/gitlab@13-5-stable-eev13.5.0-rc42GitLab Bot2020-10-211-1/+1
|
* Add latest changes from gitlab-org/gitlab@13-1-stable-eeGitLab Bot2020-06-181-1/+1
|
* Add latest changes from gitlab-org/gitlab@masterGitLab Bot2020-02-281-1/+4
|
* Add latest changes from gitlab-org/gitlab@masterGitLab Bot2020-02-121-6/+4
|
* Add latest changes from gitlab-org/gitlab@masterGitLab Bot2020-01-141-0/+7
|
* Add latest changes from gitlab-org/gitlab@masterGitLab Bot2019-09-131-0/+2
|
* Fix: Project deletion may not log audit events during user deletionValery Sizov2018-08-171-3/+4
|
* Enable more frozen string in app/services/**/*.rbgfyoung2018-07-181-0/+2
| | | | Partially addresses #47424.
* Backport relevant changes from EE ↵backport-ee-3892-to-ceTiago Botelho2018-03-071-0/+2
| | | | https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/4827 to CE
* Remove soft removals related codeYorick Peterse2018-01-081-1/+1
| | | | | | | | | | | | | | 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
* Fix user membership destroy relationFrancisco Javier López2018-01-021-0/+5
|
* Make sure repository's removal work for legacy and hashed storages28283-uuid-storageGabriel Mazetto2017-08-221-2/+4
|
* Fix current feature related specsTiago Botelho2017-06-281-1/+1
|
* Refactor the DeleteUserWorkerNick Thomas2017-06-051-1/+16
|
* Hard delete users' associated records deleted from AbuseReportssh-add-option-to-hard-deleteStan Hu2017-04-161-1/+1
| | | | | | In the case of spammers, we really want a hard delete to avoid retaining spam. Closes #31021
* Implement review comments from @DouweM for !10467.28695-move-all-associated-records-to-ghost-userTimothy Andrew2017-04-061-3/+1
| | | | | | | | | | 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.
* Move a user's merge requests to the ghost user.Timothy Andrew2017-04-061-18/+3
| | | | | | | 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.
* Fix race condition where a namespace would be deleted before a project was ↵Stan Hu2017-04-021-2/+2
| | | | | | | | | | | | | deleted 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
* Don't allow deleting a ghost user.Timothy Andrew2017-02-241-1/+1
| | | | | | | | | | | | | | | - 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.
* Implement final review comments from @DouweM and @rymaiTimothy Andrew2017-02-241-4/+9
| | | | | | | | | | | | | | - Have `Uniquify` take a block instead of a Proc/function. This is more idiomatic than passing around a function in Ruby. - Block a user before moving their issues to the ghost user. This avoids a data race where an issue is created after the issues are migrated to the ghost user, and before the destroy takes place. - No need to migrate issues (to the ghost user) in a transaction, because we're using `update_all` - Other minor changes
* Implement review comments from @DouweM and @nick.thomas.Timothy Andrew2017-02-241-2/+2
| | | | | | | | 1. Use an advisory lock to guarantee the absence of concurrency in `User.ghost`, to prevent data races from creating more than one ghost, or preventing the creation of ghost users by causing validation errors. 2. Use `update_all` instead of updating issues one-by-one.
* Deleting a user shouldn't delete associated issues.Timothy Andrew2017-02-241-0/+14
| | | | | | | | | | | | | | | | - "Associated" issues are issues the user has created + issues that the user is assigned to. - Issues that a user owns are transferred to a "Ghost User" (just a regular user with `state = 'ghost'` that is created when `User.ghost` is called). - Issues that a user is assigned to are moved to the "Unassigned" state. - Fix a spec failure in `profile_spec` — a spec was asserting that when a user is deleted, `User.count` decreases by 1. After this change, deleting a user creates (potentially) a ghost user, causing `User.count` not to change. The spec has been updated to look for the relevant user in the assertion.
* Add user deletion permission check in `Users::DestroyService`sh-delete-user-permission-checkStan Hu2017-02-201-0/+4
| | | | | | | | | We saw from a recent incident that the `Users::DestroyService` would attempt to delete a user over and over. Revoking the permissions from the current user did not help. We should ensure that the current user does, in fact, have permissions to delete the user. Signed-off-by: Rémy Coutable <remy@rymai.me>
* Fix inconsistent naming for services that delete thingsdixpac2017-02-081-0/+33
* Changed name of delete_user_service and worker to destroy * Move and change delete_group_service to Groups::DestroyService * Rename Notes::DeleteService to Notes::DestroyService