Build privacy advanced recipe

Created on 25 October 2024, about 2 months ago

Problem/Motivation

The advanced privacy should be optional and is only required by sites that will allow their users to create accounts on the site. The recipe will provide this functionality:

  • Configure entity fields by marking those with personal data as sensitive
  • Provide a mechanism that allows authenticated users to request a report about their personal data that's being stored on the site
  • Create such a report and deliver it to the user
  • Provide a mechanism that allows authenticated users to request their personal data being deleted
  • Obfuscate the personal data on request
  • Obfuscate sensitive data during database dumps so that stages or dev environments can work on the basis of sanitized content

Proposed resolution

The module proposed for this recipe is the GDPR module β†’ .

πŸ“Œ Task
Status

Active

Component

Track: Privacy

Created by

πŸ‡©πŸ‡ͺGermany jurgenhaas Gottmadingen

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

  • Issue created by @jurgenhaas
  • Pipeline finished with Success
    about 2 months ago
    Total: 926s
    #320514
  • Pipeline finished with Skipped
    about 1 month ago
    #338381
  • Pipeline finished with Skipped
    about 1 month ago
    #338430
  • Pipeline finished with Skipped
    about 1 month ago
    #338435
  • Pipeline finished with Canceled
    about 1 month ago
    Total: 64s
    #338436
  • Pipeline finished with Skipped
    about 1 month ago
    #338455
  • Pipeline finished with Skipped
    about 1 month ago
    #338454
  • πŸ‡©πŸ‡ͺGermany jurgenhaas Gottmadingen

    This MR is now available for testing by the privacy track team. It only configures the data protection framework in a very basic way.

    What it does so far:

    • A new tab "All your data" is shown in the user profile where users can request a data export or data removal.
    • A task management is available for admins at /admin/config/gdpr/tasks where they can work on those requests. Note: the cron needs to run several times during that process
    • The SQL Dump is being configured to anonymize some data
    • For the reports, removal and SQL dump only these 4 fields in the users_field_data if being anonymized: name, mail, password and initial email.

    This is working fine and if we want to go ahead with this, we can then discuss which other fields needed to be included into the list of sensitive data.

    A downside that comes with this setup: the GDPR config section at /admin/config/gdpr comes with 3 items that we don't need/want but that can't be disabled. Those are: Checklist, Summary, Content Links

    Another issue may be the name GDPR, as it is misleading for most users, in fact, all users outside the EU.

    Still, let's give this a try and then discuss how we want to proceed.

  • πŸ‡©πŸ‡ͺGermany jurgenhaas Gottmadingen
  • πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts

    Honestly? Can't see a problem here so far. Just had one question.

  • πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts

    One small change requested. The MR is still in draft, though; should that be changed? There also seem to be merge conflicts against 0.x that need to be resolved.

  • πŸ‡©πŸ‡ͺGermany jurgenhaas Gottmadingen

    @phenaproxima I've provided some more explanation in the thread to the MR.

  • Pipeline finished with Failed
    about 1 month ago
    Total: 64s
    #343603
  • Pipeline finished with Failed
    about 1 month ago
    Total: 64s
    #343604
  • Pipeline finished with Failed
    about 1 month ago
    Total: 647s
    #343609
  • Pipeline finished with Failed
    about 1 month ago
    Total: 655s
    #343610
  • Pipeline finished with Failed
    about 1 month ago
    Total: 622s
    #343843
  • Pipeline finished with Failed
    about 1 month ago
    Total: 627s
    #343844
  • Pipeline finished with Canceled
    about 1 month ago
    Total: 134s
    #343863
  • Pipeline finished with Canceled
    about 1 month ago
    Total: 211s
    #343864
  • Pipeline finished with Canceled
    about 1 month ago
    Total: 63s
    #343868
  • Pipeline finished with Failed
    about 1 month ago
    Total: 624s
    #343869
  • Pipeline finished with Canceled
    about 1 month ago
    Total: 64s
    #343893
  • Pipeline finished with Failed
    about 1 month ago
    Total: 494s
    #343894
  • Pipeline finished with Failed
    about 1 month ago
    Total: 420s
    #344756
  • Pipeline finished with Failed
    about 1 month ago
    Total: 423s
    #344755
  • Pipeline finished with Failed
    about 1 month ago
    Total: 623s
    #344764
  • Pipeline finished with Failed
    about 1 month ago
    Total: 762s
    #344765
  • Pipeline finished with Failed
    25 days ago
    Total: 1462s
    #351648
  • Pipeline finished with Failed
    25 days ago
    Total: 1547s
    #351649
  • πŸ‡¨πŸ‡­Switzerland boromino

    Although I have rebased the advanced privacy branch upon the latest 0.x branch, the recipe did not apply automatically when running ddev drush si --yes. After ddev composer require drupal/gdpr, ddev recipe-apply recipes/drupal_cms_privacy_advanced and ddev drush cr I was able to find all the above mentioned functionality.

    1. The recipe sets the export directory to private://forget. However, the private path is not set, which leads to the following error:

      file_exists(): Unable to find the wrapper "private" - did you forget to enable it when you configured PHP? GdprTasksSarWorker.php:223
      [notice] The data could not be saved because the destination private://gdpr-exports/9230fad6-f1ef-4f92-ac86-bad2b04a7496.zip is invalid. This may be caused by improper use of file_save_data() or a missing stream wrapper.

      After setting the private file path in settings.php manually, the data export works.

    2. The password hash is exported along with the user data. I'm not sure if that is a good and necessary thing.
    3. It is possible to request and process the removal of user 1 data. This should probably be made impossible.
    4. In Content links config the link to the Privacy policy page from privacy basic recipe could be set by default.

    I think the GDPR module is suitable with a few modifications.

Production build 0.71.5 2024