Privacy Guidance for Joomla Extensions

From Joomla! Documentation


Other languages:
Deutsch • ‎English • ‎français • ‎italiano
Find your extension’s Achilles heel (weakness)
in terms of personal data protection

This is a compliance audit template to map the GDPR compliance level of your Joomla! extensions. This workflow is based on the v1 draft devised by Achilleas Papageorgiou (Joomla! Compliance team) for the cross-CMS privacy working group where representatives from the communities of WordPress, Drupal, Umbraco and of course Joomla! are collaborating in privacy.

Global Recommendation This guide presents possible answers to each question and you can consider that, while there is no score to succeed, your extension should be aligned with the first answer (1.) of each question as much as possible.

Important notice You should not solely rely on the information below to design your full compliance plan regarding your software tools and business. Nevertheless, it is expected that the following information can provide you a useful and easy way to find your software’s weaknesses and let you improve it based on GDPR requirements and through the provided link to the how-to Joomla! documentation.


Choose the severity group of your extension in terms of privacy:

Groups Personal data processing profile Related questions
Group A The extension isn't expected to process or store any personal data 7 and 8
Group B The extension is expected to process or store data that can be used to indirectly associate the identity of a person 1 to 8
Group C The extension is expected to process or store personal data that can be used to directly associate the identity of a person 1 to 8
Group D The extension is expected to process or store personal data and also special categories of personal data that can include, but not limited to
  • race and ethnic origin data,
  • religious data,
  • genetic data,
  • health data.
1 to 8
Group E The extension is expected to share personal data with at least one third party service 1 to 8


1. Consent to the use of personal data functionalities

  1. Is there any functionality to collect and log consents from users that submit their personal data?
    1. A consent collection and logging system already exists.
    2. Such a system partially exists (for example there is a consent checkbox but does not store logs)
    3. There is no consent collection and logging system
        Recommended Action:
      A functionality to inform users regarding the privacy policy (upfront the collection of any personal data) and log consents (if not legal basis exists) from users that their personal data are collected and/or processed. A special focus should be given regarding the UX of this functionality to provide a simple and easy flow to users to easily understand all the appropriate information (that Webmasters should provide) and freely provide their consents.
  2. Is there a functionality to allow users to withdraw their consent?
    1. A functionality provides to users the ability to withdraw consent.
    2. There is no functionality to withdraw consent.
        Recommended Action:
      A functionality that users can use to withdraw any already given consent should provided. A special focus should be given regarding the UX of this functionality to provide a simple and easy flow to users to easily find an easy way to withdraw.
  3. Is the consent functionality connected to the Joomla core Privacy Component?
    1. Yes, it is connected to the Joomla core Privacy Component.
    2. The consent functionality is based on a custom mechanism.
    3. No, it is not.
        Recommended Action:
      Empower your compliance efforts by connecting your extension’s functions to Joomla’s core Privacy Component. This will facilitate for site creators to setup a clear and proper consent functionality for Joomla websites. Read here how you can make it happen.
  4. Does your extension allow the generation of additional consent functionalities (checkboxes) for the up front consent of the users to the use of personal data in case of marketing, profiling, children data, sensitive data?
    1. Yes, there is such functionality that can be used to generate additional consent mechanisms.
    2. Yes, there is such functionality but with limited options (i.e. you can only add one more).
    3. No, there is no functionality to generate additional consent functionalities.
        Recommended Action:
      A functionality to generate, additional to the 1.1 requirement, consents (if not legal basis exists) from users that need to provide additional consent, such as the processing of special personal data categories that require explicit consent, or to provide their consent for a different scope of processing.

2. Consent for Cookies collecting personal data

  • Group affected: B, C, D, E
  1. If your extension uses cookies that process personal data, is there a functionality for the up front consent by the user in case the software installs cookies that are collecting any personal data?
    1. Yes there is such functionality.
    2. No, there is no functionality for cookies, but there is an informational notice in order for the webmaster to use such a functionality
    3. No, there is no such functionality.
        Recommended Action:
      A functionality should exist to provide users with the ability to upfront the installation consent to cookies. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core Privacy Component. Read here how you can make it happen.
  2. If a functionality to collect consents is provided, is there also a functionality for the user/s to withdraw their consent?
    1. Yes, there is such functionality
    2. No, there is no functionality for that, but there is an informational notice for the webmaster to use such a functionality.
        Recommended Action:
      A functionality should exist to allow users to withdraw their already given consent to cookies. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core Privacy Component. Read here how you can make it happen.

3. Right to Data Portability

  • Group affected: B, C, D, E
  • Legal requirement on GDPR: Article 20
  1. Is there a functionality that gives users the ability to request and download their data?
    1. Yes, there is such functionality.
    2. Yes, but partially.
    3. No, there is no functionality for that.
        Recommended Action:
      A functionality should exist to provide users with the ability to request and download their data. Empower your compliance efforts by connecting your extension’s functions to the Joomla’s core API. Read here how you can make it happen.
  2. Is the file that is downloaded in a machine readable format (for example XML, CSV)?
    1. Yes, it is.
    2. No it isn’t.
        Recommended Action:
      A functionality should exist to allow users request and download their data to a machine readable format (for example XML, CSV). Empower your compliance efforts by connecting your extension’s functions to Joomla’s core API. Read here how you can make it happen.

4. Right of Access by the data subject

  • Group affected: B, C, D, E
  • Legal requirement on GDPR: Article 16
  1. In case the extension collects personal data, does the extension provides a dashboard to the users with settings to edit their personal data?
    1. Yes, it provides.
    2. Yes, there is but partially.
    3. No, there isn’t.
        Recommended Action:
      A view should exist to provide users with the ability to preview and edit their data.

5. Right to be Forgotten

  • Group affected: B, C, D, E
  • Legal requirement on GDPR: Article 17, Recital 65
  1. Is there a functionality that offers to users the request to remove/delete all of their data?
    1. There is.
    2. There is, but partially.
    3. There isn’t.
        Recommended Action:
      A functionality and an easy to use flow should be provided to users to submit deletion requests. At the same time a procedure for the Webmasters to manage those requests should exists at the administration side of their websites. Empower your compliance efforts by connecting your extension’s functions to Joomla’s core API. Read here how you can make it happen.
  2. Does the extension include an uninstall operation to your extensions code to successfully delete all the previous collected users’ data once the Super User decides to uninstall it?
    1. Yes, this operation is included.
    2. No, there isn’t.
        Recommended Action:
      You should use the proposed steps here to successfully include the uninstall operation and also include any code and files needed based on the Joomla MVC to succeed the complete deletion. Don’t forget to include database tables with users’ data to the uninstall process.

6. Privacy by Default

  • Group affected: B, C, D, E
  • Legal requirement on GDPR: Article 25
  1. Does the software have all the settings set to the most private possible due to its scope?
    1. Yes, the default settings are in the most private.
    2. No, the default settings are not in the most private.
        Recommended Action:
      All the settings regarding the personal data collection/processing/storage should be set to the most private possible due to its scope of processing.
  2. Is the extension collecting personal data that is not needed/being used currently?
    1. Yes, the extension collects only the minimum needed to offer to Super Users and users the expected functionalities.
    2. The extension collects by default additional information that could potentially be used by Super Users.
        Recommended Action:
      The extension should, by default, collect only the strictly needed users data that are mandatory to be functional based on its description. Any additional features that result to data collection (for example the IP collection) should be by default set OFF. the extension should provide a dashboard to let administrators manage those settings based on their needs and Privacy policies.

7. Security Measures

  1. Is there secure transmission for all the resources used by the functionality?
    1. Yes, all the requests are under HTTPS (TLS).
    2. Some of the resources transmit information insecurely.
    3. All the resources transmit information insecurely.
        Recommended Action:
      All the used resources, local or called via a third party host, should transmit data only through encrypted connections.You could inspect the HTTP requests through your browser or even use a tool for that like Screaming Frog. You should always use well configured certificates on your web servers to ensure secure transmission. In case your extension requests from or transmits data to a web server/s, you can run a test to ensure the security of the certificate used and configuration of this server. There are many tools and services to help you on that, for example you can use SSL Server Test.
  2. If your extension will be used to store special personal data categories (like those described in Group D), is the data stored encrypted?
    1. Yes, data can be stored encrypted.
    2. Only part of the data can be stored encrypted.
    3. No, no data are encrypted by the extension.
        Recommended Action:
      To empower the compliance level of your extension you could use encryption functions to encrypt the data in the database. This will make your extension more suitable to be used by websites that want to apply and prove strict security measures. View on GitHub to learn how you can make it happen.
  3. If there is a need to apply anonymization techniques are they applied?
    1. Yes, data can be anonymized.
    2. Some of the data can be partially anonymized.
    3. No, there is no ability to anonymize data.
        Recommended Action:
      You can use anonymization functions for the collected data. This will make your extension more suitable to be used by websites that want to apply and prove strict security measures. Read here how you can make it happen.

8. (In case of) Third parties/Sub-processors

  1. In case you use third parties to provide a service or a functionality, have you included it to your third parties or sub-processors list?
    1. Yes, there is a list of all third parties.
    2. No, there is no list of third parties or the list is not full.
        Recommended Action:
      You should provide a list with all the third party services used by your extension in order to make easier for the Webmasters to also include them to their Processors list in their websites Privacy Policy.
  2. In case you use third parties, do you provide a notice including a link to the Data Protection Agreement/Addendum (DPA) of the third parties used by your extension for the Webmasters that will use it to find it easy to sign them? Even if the third party does not collect any personal data, an agreement for that should exist.
    1. Yes, with all the third parties.
    2. Yes, with some of the third parties.
    3. No, there is no DPA signed.
        Recommended Action:
      You should provide a notice including a link to the Data Protection Agreements/Addendums of the third parties used by your extension in order to for the Webmasters that will use it to find it easy to sign them. This will help them review, audit and provide information to their users regarding the compliance of those third parties.

Further reading


Contributors