Discussed in #785. Basically we should stop overriding User::delete, and instead factor out this code and its decision points into model events and controller methods.
The way I see it, we might have three modes of deletion:
- Soft delete (
deleted_at timestamp)
- Medium delete (
deleted_at timestamp and clear out most user details)
- Hard delete (delete record and delete/null out any orphaned related entities)
It's possible that if we make all related entities have nullable FKs, then medium-delete and hard-delete can be essentially the same thing.
This also brings up the question of what to do when a new user wants to use the username/email of an account that was deleted previously.
Discussed in #785. Basically we should stop overriding
User::delete, and instead factor out this code and its decision points into model events and controller methods.The way I see it, we might have three modes of deletion:
deleted_attimestamp)deleted_attimestamp and clear out most user details)It's possible that if we make all related entities have nullable FKs, then medium-delete and hard-delete can be essentially the same thing.
This also brings up the question of what to do when a new user wants to use the username/email of an account that was deleted previously.