# GDPR and anonymizing personal data

**URL:** https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103
**Category:** Community Building
**Tags:** gdpr, privacy
**Created:** [2017年十月15日 12:40 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103 "2017-10-15T12:40:56Z")
**Posts on this page:** 16
**Page:** 4

<div class="post-metadata">

### Author: ![testingsoftware](https://avatars.discourse-cdn.com/v4/letter/t/f1d935/32.png) [@testingsoftware](https://meta.discourse.org/u/testingsoftware)
#### Post date: [2018年五月4日 12:36 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/61 "2018-05-04T12:36:02Z")

</div>

Just checking on an updated for acceptance of a change of ToS or other policies.

At the moment we have a compulsory field so all new users have to tick the “I have read and agree with ToS” and this is stored in the db

 ![agreement](https://global.discourse-cdn.com/meta/original/3X/a/8/a800d948937e2ccf2a7fa83f6935c6762de866a4.PNG)

But this does not cover changes of ToS when a user will have to accept them again before logging in.

Is there a way of doing this in Discourse?

---

<div class="post-metadata">

### Author: ![Adam\_Prescott](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/adam_prescott/32/95912_2.png) [@Adam\_Prescott](https://meta.discourse.org/u/Adam_Prescott)
#### Post date: [2018年五月4日 16:12 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/62 "2018-05-04T16:12:43Z")

</div>

For those of you still confused about GDPR, I completely recommend watching this talk [https://youtu.be/zU3GZyO\_E4g](https://youtu.be/zU3GZyO_E4g)  
I attended this conference and it was one of the most concise talks on GDPR I’ve seen so far.

---

<div class="post-metadata">

### Author: ![ziptofaf](https://avatars.discourse-cdn.com/v4/letter/z/ee7513/32.png) [@ziptofaf](https://meta.discourse.org/u/ziptofaf)
#### Post date: [2018年五月4日 22:50 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/63 "2018-05-04T22:50:39Z")

</div>

Careful, using boolean values for this can be incorrect. Use a DateTime. Reason? ToS versioning. Eg. what if someone agreed to your privacy policy in 2017-03-01 and you released a new version at 2017-04-01. You can just put that to false for everyone but then you have no “proof” (aside from backups) that said users agreed to your policies before.

---

<div class="post-metadata">

### Author: ![testingsoftware](https://avatars.discourse-cdn.com/v4/letter/t/f1d935/32.png) [@testingsoftware](https://meta.discourse.org/u/testingsoftware)
#### Post date: [2018年五月4日 23:05 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/64 "2018-05-04T23:05:41Z")

</div>

I see your point but I could not see other way of recording users accepting the ToS.

Any suggestions welcome

---

<div class="post-metadata">

### Author: ![ziptofaf](https://avatars.discourse-cdn.com/v4/letter/z/ee7513/32.png) [@ziptofaf](https://meta.discourse.org/u/ziptofaf)
#### Post date: [2018年五月4日 23:31 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/65 "2018-05-04T23:31:46Z")

</div>

I am actually not sure if you can do that without rewriting core Discourse elements at this point in time. If you were to go with that however - first I would create fields for each kind of consent and whether or not those are required (maybe you have some agreements that are not mandatory) and one more named revalidation\_required being a Boolean. Those would be DateTime. When user registers they click on a checkbox for each and cannot proceed until they do. After registering you put a Time.now to each field.

Now, posts with your ToS messages should be mapped to database records. As in - you change them (so probably after\_save action) - they put revalidation\_required for each user.

Then you create a new redirection straight into ApplicationController for users that have revalidation\_required set to true, you will also need a brand new controller and view with Consents. Basically you look into updated\_at fields of each consent and if it’s greater than what user has agreed to then you create a checkbox there for that part of ToS that they have to accept to proceed.

This isn’t perfect but it does sound doable in a day. Heck, if it was “raw” Ruby on Rails then [I have already done it and released a sample project that attempts to be compliant with GDPR](https://github.com/ziptofaf/gdpr-rails). But unfortunately I am not familiar enough with Discourse’s front-end side and Ember.js to attempt it here, I could write all migrations and logic needed but I would fail horribly at presenting it correctly and making it togglable inside Discourse admin panel.

---

<div class="post-metadata">

### Author: ![testingsoftware](https://avatars.discourse-cdn.com/v4/letter/t/f1d935/32.png) [@testingsoftware](https://meta.discourse.org/u/testingsoftware)
#### Post date: [2018年五月5日 21:56 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/66 "2018-05-05T21:56:03Z")

</div>

Thanks @ziptofaf

Oh dear! At least I know it cannot be done with Discourse as it is. We’ll have to figure out something else…

---

<div class="post-metadata">

### Author: ![JamesPick](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jamespick/32/138337_2.png) [@JamesPick](https://meta.discourse.org/u/JamesPick)
#### Post date: [2018年五月6日 13:47 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/67 "2018-05-06T13:47:09Z")

</div>

Thanks for sharing this. A really great overview with some good depth at the same time!

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [2018年六月2日 18:01 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/68 "2018-06-02T18:01:03Z")

</div>

Yeah really good talk, thanks for sharing +1

---

<div class="post-metadata">

### Author: ![RCheesley](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rcheesley/32/455409_2.png) [@RCheesley](https://meta.discourse.org/u/RCheesley)
#### Post date: [2018年六月8日 13:56 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/69 "2018-06-08T13:56:19Z")

</div>

@Adam_Prescott thanks for sharing this talk, have shared it onward to my USA-based team as it has some great examples of the cultural differences in understanding and legislation approaches!

---

<div class="post-metadata">

### Author: ![Alexander\_Wright](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/alexander_wright/32/119518_2.png) [@Alexander\_Wright](https://meta.discourse.org/u/Alexander_Wright)
#### Post date: [2018年七月10日 07:52 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/71 "2018-07-10T07:52:03Z")

</div>

> [@WhiteOwl](#):
>
> What’s the minimum amount of data? Who decides that? Is it dependent on context? I’d hope so!

The minimum amount of data is the minimum amount that you need to do the activity to which the user signed up.

For example, a business wanting to contact customers might want:

- name
- town
- country
- email address

However, the following possibly is not **required** to operate the business, and thus **should not be collected or stored** :

- Street address
- phone number
- age

Obviously every business and function is different. The aim is that you keep the minimum necessary to operate the service, and you tell users **what** you are collecting and **why**.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [2018年七月10日 07:53 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/72 "2018-07-10T07:53:33Z")

</div>

Pretty sure that was a spammer, here to post a spam link, not a legit request.

---

<div class="post-metadata">

### Author: ![sbenthall](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sbenthall/32/125683_2.png) [@sbenthall](https://meta.discourse.org/u/sbenthall)
#### Post date: [2018年十一月30日 21:14 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/73 "2018-11-30T21:14:33Z")

</div>

This is a helpful and comprehensive thread. It’s great to see how seriously Discourse is taking GDPR compliance.

I wanted to write in because I noticed that for the recently installed Discourse instance my community is useful, it is still using the default Privacy Policy that was last edited in 2013.

> <https://github.com/discourse/discourse/blob/55945ec7c8f975d1ac3e1695b0d8779b28823cfa/config/locales/server.en.yml#L3656>

Because it hasn’t been edited since GDPR came under consideration, I am concerned that this default setting is not in compliance. I think that among other things, GDPR changed the way privacy policies are formatted in ways that are now internationally standard.

---

<div class="post-metadata">

### Author: ![HAWK](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hawk/32/86627_2.png) [@HAWK](https://meta.discourse.org/u/HAWK)
#### Post date: [2018年十二月1日 00:54 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/74 "2018-12-01T00:54:57Z")

</div>

You can edit that Privacy Policy to say anything you like. 🙂

---

<div class="post-metadata">

### Author: ![sbenthall](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sbenthall/32/125683_2.png) [@sbenthall](https://meta.discourse.org/u/sbenthall)
#### Post date: [2018年十二月1日 01:19 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/75 "2018-12-01T01:19:32Z")

</div>

I understand that.

It is likely that I will edit it on my community’s instance. However, it is important that these notices are accurate. Otherwise, somebody hosting the software is liable for being sued for deceptive practices (by the FTC in the US).

If I’m fixing the privacy policy on our own instance, I’m happy to also prepare it as a contribution to the core repository. However, since getting the details right requires rather in depth understanding of the state of the software (as this thread shows) that will be hard to do without a lot of questioning of the team.

I may add: I’m a software developer by training and currently a privacy and security researcher by profession. I am asking about this because I think it could be a meaningful way to contribute. I’m wondering the best way to go about it.

---

<div class="post-metadata">

### Author: ![HAWK](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hawk/32/86627_2.png) [@HAWK](https://meta.discourse.org/u/HAWK)
#### Post date: [2018年十二月1日 01:23 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/76 "2018-12-01T01:23:52Z")

</div>

> [@sbenthall](#):
>
> Otherwise, somebody hosting the software is liable for being sued for deceptive practices (by the FTC in the US).

Gotta be careful with statements like this. 😉

Our [updated privacy policy](https://meta.discourse.org/privacy) covers all the necessary areas so anyone is welcome to use that as a template for their own.

That said, we’re happy to answer any questions you have.

---

<div class="post-metadata">

### Author: ![sbenthall](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sbenthall/32/125683_2.png) [@sbenthall](https://meta.discourse.org/u/sbenthall)
#### Post date: [2018年十二月1日 01:39 UTC](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103/77 "2018-12-01T01:39:37Z")

</div>

Ah, excellent, thank you.

[上一頁](https://meta.discourse.org/t/gdpr-and-anonymizing-personal-data/72103.md?page=3)
