Skip to content

Commit 44be0cb

Browse files
authored
Merge pull request #376 from linuxfrorg/minimize_database
Update help on personal data and restrict access to account activity
2 parents 10d814c + 3635324 commit 44be0cb

File tree

4 files changed

+42
-15
lines changed

4 files changed

+42
-15
lines changed

app/models/account.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
# min_karma :integer default(20)
3030
# max_karma :integer default(20)
3131
# uploaded_stylesheet :string(255)
32+
# last_seen_on :date
3233
#
3334

3435
#
@@ -197,12 +198,30 @@ def self.send_reset_password_instructions(attributes={})
197198
recoverable
198199
end
199200

201+
def display_last_seen_on
202+
if not last_seen_on
203+
'jamais'
204+
elsif last_seen_on >= 30.days.ago
205+
'dans les 30 derniers jours'
206+
elsif last_seen_on >= 1.year.ago
207+
'il y a moins d’un an'
208+
elsif last_seen_on >= 3.year.ago
209+
'il y a moins de trois ans'
210+
else
211+
'il y a plus de trois ans'
212+
end
213+
end
214+
200215
### Actions ###
201216

202217
def viewable_by?(account)
203218
account && (account.admin? || account.moderator? || account.id == self.id)
204219
end
205220

221+
def is?(account)
222+
account && account.id == self.id
223+
end
224+
206225
def can_post_on_board?
207226
active_for_authentication? && !plonked? && karma > 0
208227
end

app/views/admin/accounts/index.html.haml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
#{ image_tag "/images/icones/denied.png", alt: "masqués", title: "masqués", width: "16px" }
7575
%br
7676
%td= account.created_at.to_s(:posted)
77-
%td= account.last_seen_on ? account.last_seen_on.to_s(:date) : "-"
77+
%td= account.display_last_seen_on
7878
%td
7979
- if account.inactive? && account.user_id != 1
8080
= button_to "Activer", [:admin, account], method: :put, class: "ok_button"

app/views/users/_recent.html.haml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,24 @@
44
- unless @user.account && @user.account.active_for_authentication?
55
%p Compte fermé
66
- if @user.account && @user.account.viewable_by?(current_account)
7+
%p 🛈 infos visibles du compte 👤 et des équipes de modération 🧐 et d’administration 👾 sauf exception
78
- a = @user.account
89
%ul
910
%li Courriel : #{a.email}
1011
%li Rôle : #{a.display_role(@user.nodes.where(public: true).count>0)}
11-
%li Dernière connexion : #{a.current_sign_in_at ? l(@user.account.current_sign_in_at) : "-"}
12-
%li Dernière action : #{a.updated_at ? l(@user.account.updated_at) : "-"}
13-
%li Dernière visite : #{a.last_seen_on ? l(@user.account.last_seen_on, format: '%d %B %Y') : "-"}
12+
- if @user.account.is?(current_account)
13+
%li Dernière connexion : #{a.current_sign_in_at ? l(@user.account.current_sign_in_at) : "-"} (👤)
1414
%li Karma : #{a.karma} (minimum : #{a.min_karma}, maximum : #{a.max_karma})
1515
- if @user.homesite.present?
1616
%li Site perso : #{@user.homesite}
1717
- if @user.jabber_id.present?
1818
%li XMPP : #{@user.jabber_id}
1919
- if @user.mastodon_url.present?
2020
%li Mastodon : #{@user.mastodon_url}
21-
- if current_account.admin?
22-
%p Visibilité
21+
- if current_account.admin?
22+
%li Dernière visite : #{@user.account.display_last_seen_on} (👾)
23+
- if current_account.amr?
24+
%p Visibilité (🧐👾)
2325
%ul
2426
- if @user.account.plonked?
2527
%li interdiction de tribune ;
@@ -38,7 +40,7 @@
3840
- else
3941
%li pas d'étiquettes.
4042

41-
%p Étiquetages : #{ @user.taggings.count }
43+
%p Étiquetages (🧐👾) : #{ @user.taggings.count }
4244
= button_to "+50 XP", karma_admin_account_path(@user.account.id)
4345
- if current_account.can_block?
4446
%button.more.block Interdire de commenter
@@ -59,7 +61,7 @@
5961
%li= button_to "une semaine", moderation_plonk_index_path(nb_days: 7, account_id: @user.account.id), remote: true, class: "plonk"
6062
%li= button_to "un mois", moderation_plonk_index_path(nb_days: 30, account_id: @user.account.id), remote: true, class: "plonk"
6163
- if @user.account.logs.any?
62-
%h2.history Historique
64+
%h2.history Historique (🧐👾)
6365
%ul.history
6466
= list_of(@user.account.logs) do |log|
6567
%span.date

db/pages/aide.html

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,8 @@ <h2 id="aide-dcp">Quelles sont les données à caractère personnel (DCP) trait
482482
<li>transmettre des notifications liées aux services, par exemple les publications/rejets de dépêches ou les attributions de prix mensuels. Cette tâche utilise l’adresse de courriel ;</li>
483483
<li>afficher les données publiques liées au compte (le compte lui-même, les contenus du compte, les commentaires du compte, etc.). Cette tâche nécessite en interne un identifiant unique par compte ;</li>
484484
<li>gérer les litiges éventuels (par exemple, le manifestement illégal, le prétendument illégal) et le cadre légal (par exemple, la modification des données de son propre compte, le droit d’auteur). Cette tâche nécessite d’avoir des données d’identification, d’attribution et de contact pour les publications de contenus / commentaires faits par des tiers (les comptes) ;</li>
485-
<li>détecter et gérer des éventuels abus du service (comptes multiples, etc.).</li>
485+
<li>détecter et gérer des éventuels abus du service (comptes multiples, etc.) ;</li>
486+
<li>gérer la limitation de la conservation des DCP et la limitation dans le temps des habilitations (modération, administration). Cette tâche nécessite d’avoir la date de dernière visite.</li>
486487
</ul>
487488

488489
<p>Le RGPD limite la conservation des DCP. Dans le présent contexte, cette obligation concerne à la fois les comptes toujours ouverts mais inutilisés pendant une certaine durée aussi bien que les comptes fermés. En tout état de cause, LinuxFr.org n’a pas d’intérêt ou de besoin légitime à conserver indéfiniment ces données, dès qu’une période raisonnable est passée. Pour définir cette période raisonnable, LinuxFr.org tient compte de la prescription après 3 mois pour le droit de la presse en France. LinuxFr.org estime que les risques de revoir le même spammeur avec les mêmes coordonnées diminuent énormément en quelques mois ou mêmes semaines. Etc.</p>
@@ -493,8 +494,9 @@ <h2 id="aide-dcp">Quelles sont les données à caractère personnel (DCP) trait
493494
<li>nom affichable : choisi par la personne utilisant le compte et modifiable à tout moment tant que le compte est ouvert. Il est nécessaire à identifier l’utilisateur aux autres utilisateurs du site (sachant que l’identifiant ou pseudo est utilisé à défaut).</li>
494495
<li>adresse de courriel : définie par la personne utilisant le compte, validée par le courriel initialement envoyé à la création du compte ; elle est modifiable par la suite tant que le compte est ouvert. Il est nécessaire pour valider l’humanité du compte et pour les notifications.</li>
495496
<li>mot de passe : initialement généré aléatoirement et pouvant être modifié à tout moment par la personne utilisant le compte tant que celui-ci est ouvert. Il sert à s’authentifier sur le site.</li>
496-
<li>adresse IP de connexion courante ;</li>
497-
<li>adresse IP de connexion précédente.</li>
497+
<li>date et adresse IP de connexion courante ;</li>
498+
<li>date et adresse IP de connexion précédente ;</li>
499+
<li>date de dernière visite ;</li>
498500
</ul>
499501

500502
<p>Les données à caractère personnel non-obligatoires pour le service et fournies par les utilisateurs sont :</p>
@@ -519,15 +521,18 @@ <h2 id="aide-donneesinutiles">Quelles sont les données inutiles au service qui
519521

520522
<p><a href="https://linuxfr.org/news/regles-de-perennite-des-comptes-linuxfr-org-et-donnees-a-caractere-personnel">Depuis le 28 juin 2023</a>, les données associées inutiles au service des comptes fermés sont supprimées.</p>
521523

524+
<p>Les comptes créés et sans connexion pendant sept jours seront purgés.</p>
525+
522526
<p>Les comptes inactifs pendant trois ans seront fermés :</p>
523527

524528
<ul>
525529
<li>les éventuels contenus et commentaires non publics de ces comptes seront supprimés ;
526-
<li>en l’absence de contenus ou commentaires publics ou de contributions à des contenus publics, le compte sera purgé ;
530+
<li>en l’absence de contenus ou commentaires publics ou de contributions à des contenus publics, le compte sera purgé (les éventuels étiquetages seront réattribués à l'utilisateur Anonyme) ;
527531
<li>sinon
528532
<ul>
529533
<li>seront conservés l’identifiant ou pseudo, l’adresse de courriel, le nom affichable et la signature (pour l’attribution du droit d’auteur) ;</li>
530-
<li>seront supprimées de la base le mot de passe, les adresses IP de création du compte et de dernière connexion, l’image éventuelle d’avatar, les éventuelles adresses de site web personnel, de messagerie instantanée XMPP et/ou de compte Mastodon, l’éventuelle feuille de style personnelle.</li>
534+
<li>seront supprimées de la base le mot de passe, les dates et adresses IP des deux dernières connexions du compte, l’image éventuelle d’avatar, les éventuelles adresses de site web personnel, de messagerie instantanée XMPP et/ou de compte Mastodon, l’éventuelle feuille de style personnelle.</li>
535+
<li>seront supprimées les applications utilisant l'API du site reliées au compte, ainsi que les accès et tokens reliés à ces applications ou au compte ;</li>
531536
</ul>
532537
</li>
533538
</ul>
@@ -538,11 +543,12 @@ <h2 id="aide-donneesinutiles">Quelles sont les données inutiles au service qui
538543

539544
<ul>
540545
<li>les éventuels contenus et commentaires non publics de ces comptes seront supprimés ;</li>
541-
<li>en l’absence de contenus ou commentaires publics ou de contributions à des contenus publics, le compte sera purgé ;</li>
546+
<li>en l’absence de contenus ou commentaires publics ou de contributions à des contenus publics, le compte sera purgé (les éventuels étiquetages seront réattribués à l'utilisateur Anonyme) ;</li>
542547
<li>sinon
543548
<ul>
544549
<li>seront conservés l’identifiant ou pseudo, le nom affichable et la signature (pour l’attribution du droit d’auteur) ;</li>
545-
<li>seront supprimées de la base active l’adresse de courriel, le mot de passe, les adresses IP de création du compte et de dernière connexion, l’image éventuelle d’avatar, les éventuelles adresses de site web personnel, de messagerie instantanée XMPP et/ou de compte Mastodon, l’éventuelle feuille de style personnelle.</li>
550+
<li>seront supprimées de la base active l’adresse de courriel, le mot de passe, les dates et adresses IP des deux dernières connexions du compte, l’image éventuelle d’avatar, les éventuelles adresses de site web personnel, de messagerie instantanée XMPP et/ou de compte Mastodon, l’éventuelle feuille de style personnelle.</li>
551+
<li>seront supprimées les applications utilisant l'API du site reliées au compte, ainsi que les accès et tokens reliés à ces applications ou au compte ;</li>
546552
</ul>
547553
</li>
548554
</ul>

0 commit comments

Comments
 (0)