View Issue Details

IDProjectCategoryView StatusLast Update
0005584Composrcore_privacypublic2024-08-04 22:45
ReporterPatrick SchmalstigAssigned ToChris Graham 
SeverityFeature-request 
Status assignedResolutionopen 
Product Version 
Fixed in Version 
Summary0005584: Handle catalogue fields in privacy system
DescriptionCurrently, only the download privacy action handles catalogue fields (via serialise).

Also handle catalogue fields in the anonymise privacy action, and get_selection_sql privacy code module function:

get_selection_sql:
piggy-back off of catalogue_entries... in catalogue_entries, JOIN on the catalogue field values

field hooks:
Add a new method: privacy_anonymise. Return true if catalogue fields of this type should be anonymised via the privacy system. Generally, anything involving members, usernames, IP addresses, e-mails, legal names, phone numbers, etc should be true.

privacy hook:
Add the table holding fields and their values to the hook, with ANONYMISE as the default and only allowed method. Don't define anything for the fields. Add this table as an exception in privacy_hooks unit test when it complains about not defining this because it has no personal data fields defined.

anonymise:
Add an anonymise override on the privacy hook. When running on the table dealing with catalogue field values, check the field type and determine via the field hook if it should be anonymised (providing it matches criteria). It should be anonymised if either the value directly matches the criteria or its parent catalogue_entries row passes the is_owner check.
Additional InformationThis is work I'm going to do untracked as I'd like to see this functionality
TagsRoadmap: v11, Type: Legal compliance / Privacy
Time estimation (hours)
Sponsorship open

Relationships

related to 0005555 resolvedPatrick Schmalstig Composr alpha bug reports Privacy purging overhaul 
related to 0005585 resolvedPatrick Schmalstig Composr Provide files in privacy download archive 

Activities

Patrick Schmalstig

2024-04-01 01:00

administrator   ~0008505

Need to also account for fields which may hold personally uploaded files ( 0005585 )

Patrick Schmalstig

2024-04-07 00:34

administrator   ~0008530

Last edited: 2024-04-07 00:34

View 2 revisions

Actually this system won't work

get selection SQL: cannot easily piggy back because we'd be joining on many tables (catalogues store entry values depending on field type)

Field hooks: Instead of defining in the hook whether to anonymise it, I added a new setting when creating fields on catalogues: "May contain personal information". That way, admins can define per-field which ones should be handled by privacy.

I did add a new method in some field hooks, privacy_field_type, to define how the privacy system should treat this field (e.g. what criteria to match against it). By default, privacy treats as an additional anonymise field unless this method returns otherwise.

Added IP address field hooks so admins can define IP addresses specifically; necessary so the privacy system can treat them as such.

Did NOT add the tables holding catalogue values to privacy hooks (at least not yet). It won't work the way I'd want it to considering values are stored separately from fields.

--- WHAT NEEDS DONE ---

* Currently v11 only matches against the catalogue entry details itself, not the values within an entry. So if a (sensitive) field contains, say, a member ID, it still won't match in privacy unless the catalogue entry itself matched. I have absolutely no idea right now how to remedy this; it is a very complex problem. Deferring to Chris on this one.

Issue History

Date Modified Username Field Change
2024-01-30 17:46 Patrick Schmalstig New Issue
2024-01-30 17:46 Patrick Schmalstig Status non-assigned => assigned
2024-01-30 17:46 Patrick Schmalstig Assigned To => Patrick Schmalstig
2024-01-30 17:50 Patrick Schmalstig Tag Attached: Roadmap: v11
2024-01-30 17:50 Patrick Schmalstig Relationship added related to 0005555
2024-01-30 17:50 Patrick Schmalstig Relationship added related to 0005585
2024-04-01 01:00 Patrick Schmalstig Note Added: 0008505
2024-04-07 00:34 Patrick Schmalstig Note Added: 0008530
2024-04-07 00:34 Patrick Schmalstig Assigned To Patrick Schmalstig => Chris Graham
2024-04-07 00:34 Patrick Schmalstig Note Edited: 0008530 View Revisions
2024-08-04 22:44 Chris Graham Description Updated View Revisions
2024-08-04 22:45 Chris Graham Tag Attached: Type: Legal compliance / Privacy