View Issue Details

IDProjectCategoryView StatusLast Update
5513Composrcore_privacypublic2024-08-04 23:34
ReporterPDStig Assigned ToPDStig  
PrioritynormalSeverityfeature 
Status resolvedResolutionfixed 
Summary5513: Auto-delete certain data when an account is deleted
DescriptionThe GDPR expects that when a user deletes their account, the website no longer maintains any data of that user except that which is absolutely necessary (and to disclose in the Privacy Policy which data persists).

Currently, Composr does not delete any user data when they delete their account. We expect members to separately contact staff for that. We shouldn't do that.

Add a task (using the task queue when applicable) that fires in the background when a member deletes their account. It will run through every privacy hook and perform the removal_default_handle_method action on data that meets one or more of the following criteria:

* Any member_id_fields contain the ID of the member who was deleted
* Any ip_address_fields contain the most recent IP address of the member AND either has no member_id_fields defined, has the deleted member in at least one of the member_id_fields, or has nothing but the guest ID in member_id_fields
* Any email_fields contain the e-mail of the deleted member

Also anonymise all additional_anonymise_fields on the rows matching any of the above criteria.
TagsRoadmap: v11, Type: Legal compliance / Privacy
Attach Tags
Time estimation (hours)
Sponsorship open

Sponsor

Date Added Member Amount Sponsored

Relationships

related to 5512 ClosedPDStig Composr Secondary Privacy block detailing the data stored in the database 
related to 5514 ClosedPDStig Composr testing platform / automation goals Add a unit test for removal_default_handle_method and allowed_handle_methods in privacy hooks 
related to 5849 ClosedPDStig Composr Add more staff control over user deletion 

Activities

PDStig

2024-01-14 17:37

administrator   ~8189

Actually, we already have purge member. Perhaps a tick box (option whether it's ticked by default) that sends a request to the admin upon account deletion (would of course have to be communicated through email). Uses tickets system if implemented to ensure security (can verify the email of the member), else sends a regular email.

For regular email, from site email, to staff email, reply to member email. Always CC to the member.

Staff option:
* Never auto-delete user data on deletion
* Ask user via (above) tick box
* Always delete user data (not recommended because staff would have to customize the hooks to make absolutely sure it is what they want)

PDStig

2024-01-29 03:30

administrator   ~8269

Also moved member deleting into a task as it should ideally run in the task queue. But I added protections...

e.g. when a member requests to have their account deleted, it is put in the task queue, however:
* Their session is invalidated (logged out)
* Their password compat scheme is changed to "pending_deletion" which will prevent them from logging in while the account is pending deletion
* The password compat scheme will also trigger member does not exist when others try to view their profile

Chris Graham

2024-08-04 22:53

administrator   ~9096

I don't really understand this one. Are we saying that if a new tickbox is checked, account deletion is paused pending staff doing a manual purge (that they sanity check), but otherwise the account is auto-deleted with data otherwise being left intact?

PDStig

2024-08-04 23:06

administrator   ~9101

Last edited: 2024-08-04 23:07

No,

When a member requests their account to be deleted, it's all automatic. The new process is as follows:
* Their session is invalidated, and their password scheme is changed to a special one indicating it is pending deletion (so they cannot log in again even if it hasn't yet been actualised... and so no one can view their profile). The actual deletion is added to the task queue because it can be a resource-intensive operation depending on how much content there is to delete.
* On the delete page, they are also asked if they want their data to be purged as well. If ticked, a purge operation is also performed on their content in the queued task (before the member is actually deleted). It uses the default actions as specified in the privacy hooks.

Chris Graham

2024-08-04 23:22

administrator   ~9108

Ok, I think maybe we need to have a staff notification for an account being deleted (if it does not already exist). And if the new option is "Never auto-delete user data on deletion", provide a link to do a purge manually.

PDStig

2024-08-04 23:32

administrator   ~9112

I can do that

Issue History

Date Modified Username Field Change
2023-12-28 19:02 PDStig New Issue
2023-12-28 19:02 PDStig Status Not Assigned => Assigned
2023-12-28 19:02 PDStig Assigned To => user4172
2023-12-28 19:03 PDStig Tag Attached: Roadmap: v11
2023-12-28 19:03 PDStig Tag Attached: Type: Legal compliance / Privacy
2023-12-28 19:04 PDStig Relationship added related to 5512
2023-12-28 19:09 PDStig Relationship added related to 5514
2024-01-14 17:37 PDStig Note Added: 0008189
2024-01-29 03:30 PDStig Status Assigned => Resolved
2024-01-29 03:30 PDStig Resolution open => fixed
2024-01-29 03:30 PDStig Note Added: 0008269
2024-03-30 03:28 PDStig Project Composr alpha bug reports => Composr
2024-03-30 03:52 PDStig Category General / Uncategorised => core_privacy
2024-08-04 22:53 Chris Graham Note Added: 0009096
2024-08-04 23:06 PDStig Note Added: 0009101
2024-08-04 23:07 PDStig Note Edited: 0009101
2024-08-04 23:22 Chris Graham Note Added: 0009108
2024-08-04 23:32 PDStig Note Added: 0009112
2024-08-04 23:34 PDStig Relationship added related to 5849