Similar to D1590 make a GDPR proof policy for the User Reporter, covering the current state and plans by vladislav
Details
Read the GDPR, especially:
https://gdpr-info.eu/
Article 4 Definitions Article 6 Lawfulness of Processing Article 8 Childs Consent Article 12 Transparency Article 15 Right of access Article 16 Right of Rectification Article 17 Right of erasure
Diff Detail
- Repository
- rP 0 A.D. Public Repository
- Branch
- /ps/trunk
- Lint
Lint OK - Unit
No Unit Test Coverage - Build Status
Buildable 6302 Build 10457: Vulcan Build Jenkins Build 10456: arc lint + arc unit
Event Timeline
Successful build - Chance fights ever on the side of the prudent.
Linter detected issues: Executing section Default... Executing section Source... Executing section JS... | | [NORMAL] ESLintBear (semi): | | Missing semicolon. |----| | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/pregame/mainmenu.js | |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/pregame/mainmenu.js | 51| 51| | 52| 52| function initUserReport() | 53| 53| { | 54| |- let userReportPrivacyPolicy = Engine.TranslateLines(Engine.ReadFile("gui/pregame/Privacy_Policy.txt")) | | 54|+ let userReportPrivacyPolicy = Engine.TranslateLines(Engine.ReadFile("gui/pregame/Privacy_Policy.txt")); | 55| 55| Engine.GetGUIObjectByName("userReportPrivacyPolicyMainText").caption = userReportPrivacyPolicy; | 56| 56| | 57| 57| let agreeTerms = Engine.CalculateMD5(userReportPrivacyPolicy) == Engine.ConfigDB_GetValue("user", "userreport.privacy_policy"); binaries/data/mods/public/gui/pregame/mainmenu.js | 54| » let·userReportPrivacyPolicy·=·Engine.TranslateLines(Engine.ReadFile("gui/pregame/Privacy_Policy.txt")) | | [NORMAL] JSHintBear: | | Missing semicolon.
Link to build: https://jenkins.wildfiregames.com/job/differential/686/display/redirect
binaries/data/mods/public/gui/pregame/mainmenu.js | ||
---|---|---|
54 | semi |
Here are a couple comments on the privacy policy itself. I haven't tested the code, I can find some time for that if needed.
binaries/data/mods/public/gui/pregame/Privacy_Policy.txt | ||
---|---|---|
22 | I'd write "excluding" instead of "except" but that's really a minor request :) | |
27 | "The User ID acts as your pseudonym among all users of the service. It is selected at random and is not associated with your IP during the processing of your data." | |
28 | "Unless your IP is stored", I believe. We'll keep storing the rest of the data in an anonymous way after one month. | |
32 | I think we could clarify that (because it sounds like we keep the IPs and use them to identify the user). "You will have to provide the User ID so we can select your data in our database. We also ask for your IP address to prevent abuse of personal data requests." |
binaries/data/mods/public/gui/pregame/Privacy_Policy.txt | ||
---|---|---|
27 | we might need to associate in case of abuse, so adding that |
Build failure - The Moirai have given mortals hearts that can endure.
Link to build: https://jenkins.wildfiregames.com/job/differential/687/display/redirect
Successful build - Chance fights ever on the side of the prudent.
Link to build: https://jenkins.wildfiregames.com/job/differential/693/display/redirect
Successful build - Chance fights ever on the side of the prudent.
Link to build: https://jenkins.wildfiregames.com/job/differential/698/display/redirect
Successful build - Chance fights ever on the side of the prudent.
Linter detected issues: Executing section Default... Executing section Source... Executing section JS... | | [NORMAL] ESLintBear (semi): | | Missing semicolon. |----| | /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/pregame/mainmenu.js | |++++| /mnt/data/jenkins-phabricator/workspace/differential/binaries/data/mods/public/gui/pregame/mainmenu.js | 204| 204| function updateTermsFeedback() | 205| 205| { | 206| 206| let feedbackText = checkTerms(); | 207| |- let userReportEnableButton = Engine.GetGUIObjectByName("userReportEnableButton") | | 207|+ let userReportEnableButton = Engine.GetGUIObjectByName("userReportEnableButton"); | 208| 208| userReportEnableButton.enabled = !feedbackText; | 209| 209| userReportEnableButton.tooltip = feedbackText; | 210| 210| } binaries/data/mods/public/gui/pregame/mainmenu.js | 207| » let·userReportEnableButton·=·Engine.GetGUIObjectByName("userReportEnableButton") | | [NORMAL] JSHintBear: | | Missing semicolon.
Link to build: https://jenkins.wildfiregames.com/job/differential/702/display/redirect
Some little comments.
binaries/data/config/default.cfg | ||
---|---|---|
478 | Couldn't it be the game version ? | |
binaries/data/mods/public/gui/pregame/mainmenu.js | ||
57 | Should there be caps everywhere ? | |
binaries/data/mods/public/l10n/messages.json | ||
367 | Does it make sense to have caps for a txt file while the one below doesn't ? |
(Was mostly a copy&paste from D1590 and thus had the same mistakes, most importantly was missing the entire paragraph about user rights. Still greatly appreciating the feedback by bb who at the time had actually read the GDPR and argued based on the orders therein. The work was continued at https://github.com/bb-bb/0ad/tree/terms, then https://github.com/elexis1/0ad/tree/terms and https://github.com/elexis1/0ad/tree/terms2 The code refactoring was committed separately.)
binaries/data/mods/public/l10n/messages.json | ||
---|---|---|
367 | A separate resource seems better than continuing to add to gui-almost-everything resource. I hope it won't bring us into trouble like it did last time, I hope Itms saw it when he did https://github.com/elexis1/0ad/pull/1 |
About https://github.com/elexis1/0ad/pull/1, do you have any comments on my suggestions? I really liked this iteration, with generalized mention of the relevant GDPR articles, so I tried to make improvements where I saw fit, but the work was definitely good enough to replace the different Phabricator patches, if you want to finish the review here rather than on GitHub.
binaries/data/mods/public/l10n/messages.json | ||
---|---|---|
367 | I don't think those caps can create trouble. On the topic of creating a new file, I'll be super careful with Transifex for this string freeze. As long as we make sure Transifex doesn't forget to update resources, there shouldn't be any actual bugs. |
Currently at 40 of maybe 80 inline comments, seeking to commit an updated version of the UserReporter terms, unless you want to review it again.
binaries/data/mods/public/l10n/messages.json | ||
---|---|---|
367 | That is a yes or no to public-gui-userreport.pot from https://github.com/0ad/0ad/compare/master...elexis1:terms2#diff-c0c45d22794b6fad8ccd763109ca016d ? |
As I said, I was happy with the terms I made a pull request on, so I trust you to commit something that I'm happy with. It's up to you to ask a review from me if you want one ? I'll let you know if I have remarks anyways.
binaries/data/mods/public/l10n/messages.json | ||
---|---|---|
367 | Ah you were right I missed it! I jumped right on the legal stuff. It's a yes from me. It doesn't move unrelated strings to the new resource, so there is no risk for translators to loose their work. I will have to create the matching Transifex resource as soon as it's committed, though (but that's part of me being extra careful for A23b strings). |