Commit graph

6 commits

Author SHA1 Message Date
Stan Hu
60eee739f0 Hard delete users' associated records deleted from AbuseReports
In the case of spammers, we really want a hard delete to avoid retaining spam.

Closes #31021
2017-04-16 08:36:33 -07:00
Timothy Andrew
1c42505b02
Implement review comments from @DouweM for !10467.
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.
2017-04-06 22:39:40 +05:30
Timothy Andrew
3e1a1242c6
Move a user's award emoji to the ghost user
... when the user is destroyed.

1. Normally, for a given awardable and award emoji name, a user is only allowed
   to create a single award emoji.

2. This validation needs to be removed for ghost users, since:

   - User A and User B have created award emoji - with the same name and against
     the same awardable
   - User A is deleted. Their award emoji is moved to the ghost user
   - User B is deleted. Their award emoji needs to be moved to the ghost user.
     However, this breaks the uniqueness validation, since the ghost user is
     only allowed to have one award emoji of a given name for a given awardable
2017-04-06 18:59:17 +05:30
Timothy Andrew
682987547a
Move a user's abuse reports to the ghost user
... when the user is destroyed.

To clarify, this regards abuse reports that the to-be-deleted user has _reported_.
2017-04-06 18:59:16 +05:30
Timothy Andrew
97cbf7c223
Move a user's notes to the ghost user
... when the user is destroyed.
2017-04-06 18:58:59 +05:30
Timothy Andrew
72580f07af
Move a user's merge requests to the ghost user.
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.
2017-04-06 18:58:57 +05:30
Renamed from spec/services/users/destroy_spec.rb (Browse further)