Skip to content

Create PRIVACY.md for Registration - #11825

Open
selyesa wants to merge 1 commit into
ILIAS-eLearning:trunkfrom
selyesa:patch-46
Open

Create PRIVACY.md for Registration#11825
selyesa wants to merge 1 commit into
ILIAS-eLearning:trunkfrom
selyesa:patch-46

Conversation

@selyesa

@selyesa selyesa commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

This pull request adds a new privacy.md document for the Registration component.

Important: The content was generated using AI and must be reviewed and approved by the responsible authority before it is merged or published.

The generated text is intended solely as a starting point. No guarantee is made regarding its correctness or completeness. Please verify and revise the content as necessary before use.

@selyesa selyesa added improvement documentation Pull requests that only update or add documentation. privacy labels Jul 27, 2026
@thojou
thojou self-requested a review July 29, 2026 08:58

@thojou thojou left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @selyesa,

thanks for adding the PRIVACY.md for Registration. Overall this looks well covered and largely match the current implementation.

I would like to request the following changes before merging:

  • Broken disclaimer link
  • Non-personal-Data in "Data being stored"

Regarding point 2: during review I noticed that this section also includes non-personal administrative data — you’re the expert on privacy here, so I’ll leave it to you whether those details should stay; I mainly wanted to call it out.

Once those are addressed, this looks good to merge from my side.

Kind regards,
@thojou

@@ -0,0 +1,114 @@
# Registration Privacy

> **Disclaimer: This documentation does not guarantee completeness or accuracy. Please report any missing or incorrect information by submitting a [Pull Request](docs/development/contributing.md#pull-request-to-the-repositories) or, if you prefer, via the [ILIAS bug tracker](https://mantis.ilias.de). When using the bug tracker, please select the corresponding component in the **Category** field.**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit / correctness: this relative path does not work from components/ILIAS/Registration/PRIVACY.md.
Please change it to something like:

Comment on lines +38 to +66
## Data being stored

- **Registration code**: When a person with the "Write" permission generates registration codes,
each **code string** is stored in the `reg_registration_codes` table together with a
**generation timestamp**, an assigned **global role ID**, optional **local role IDs**, an
**access limitation mode** and its parameters, and flags indicating whether the code is valid
for registration and/or account extension. These codes do not contain personal data themselves,
but they are linked to roles and access policies.
- **Registration code usage timestamp**: When a user redeems a registration code during
self-registration, the **timestamp** of usage is written to the `used` column of the
`reg_registration_codes` table. The code itself does not record **which** user redeemed it.
- **Pending registration user ID**: When dual opt-in (email confirmation) registration is active,
the **user ID** of the newly created (but not yet activated) user account is stored in the
`reg_dual_opt_in` table to track the pending confirmation.
- **Confirmation hash**: A unique **hash value** is generated and stored in the
`reg_dual_opt_in` table alongside the user ID. This hash is sent to the user's email address
as part of the confirmation link.
- **Pending registration creation timestamp**: The **creation date** (as Unix timestamp) of
the pending registration is stored in the `reg_dual_opt_in` table to determine whether the
confirmation link has expired.
- **Email-to-role assignments**: The `reg_er_assignments` table stores mappings between
**email domain patterns** and **role IDs** for automatic role assignment during registration.
These are administrative configuration data and do not contain personal user data.
- **Role access limitations**: The `reg_access_limit` table stores **access limitation modes**
(absolute date, relative duration, or unlimited) per role. These are administrative
configuration data and do not contain personal user data.
- **Approval recipient user IDs**: The **user IDs** of persons designated to receive
notification emails when new users register are stored in the global ILIAS settings
(key `approve_recipient`).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to docs/development/how-to-write-a-privacy.md, “Data being stored” should list personal data only (INSERT/UPDATE), and explicitly exclude generic/non-identifiable data.

Several bullets here state that the data is not personal (registration codes, reg_er_assignments, reg_access_limit). I’d suggest moving that context to "General Information" (or dropping it) and keeping this section focused on actual personal/person-linked data, especially:

  • pending dual opt-in records (usr_id, confirmation hash, creation timestamp in reg_dual_opt_in)
  • approval recipient user IDs in settings (approve_recipient)

That would align better with the PRIVACY.md guidelines and with how other components structure this section.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Pull requests that only update or add documentation. improvement privacy

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants