Skip to content

Use model events to handle different modes of user deletion #819

@alexweissman

Description

@alexweissman

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Not Started

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions