News:

Wondering if this will always be free?  See why free is better.

Main Menu

SMF & GDPR Personally Identifiable Information

Started by kitz, April 11, 2018, 01:35:54 PM

Previous topic - Next topic

Medo42

There is another article about the Max Schrems case here, which may help clear things up a bit: hxxp:www.irishtimes.com/business/technology/max-schrems-files-first-cases-under-gdpr-against-facebook-and-google-1.3508177 [nonactive]

QuoteMr Schrems, head of a new privacy lobby group noyb (None of Your Business), accused Facebook of "blackmail" for giving users only two options: accept the new rules – and hand over more data than needed to operate the service – or deactivate their account.

Emphasis mine. This would be a violation of the "coupling prohibition" in Article 7 section 4 of the GDPR:

QuoteWhen assessing whether consent is freely given, utmost account shall be taken of whether, inter alia, the performance of a contract, including the provision of a service, is conditional on consent to the processing of personal data that is not necessary for the performance of that contract.

So what I take from this is that it's fine to say "accept the policy or delete your account". This is still free consent as long as everything in the policy is required to provide the service. For any processing that goes beyond that, you need a separate agreement with a separate checkbox that is optional and not ticked by default.

Aleksi "Lex" Kilpinen

Slava
Ukraini!
"Before you allow people access to your forum, especially in an administrative position, you must be aware that that person can seriously damage your forum. Therefore, you should only allow people that you trust, implicitly, to have such access." -Douglas

How you can help SMF

CrescentEclipse

#262
Hey vbgamer45, thanks for this mod!
I think this is really helpful.

But at the moment I am struggeling a little bit, because during the registration the privacy policy can't be displayed. My forum is only accessible for registered users, so is there any possible fix for this other than make it open to all visitors?

I also tried to include german language support. During the installation there were no errors, but SMF just skipped to add the german language strings to the modifications.german_informal.php file. Is this somehow related to the special german characters?

I suppose the german php file will not be loaded automatically at the moment without code changes, right?

Thank you :)

petb

#263
Quote from: CrescentEclipse on May 26, 2018, 06:47:15 AM
..........
I also tried to include german language support. During the installation there were no errors, but SMF just skipped to add the german language strings to the modifications.german_informal.php file. Is this somehow related to the special german characters?

I suppose the german php file will not be loaded automatically at the moment without code changes, right? .........
For the German Strings you have to copy the gpdr.english.php or the gpdr.english-utf8.php to
gpdr.german.php or gpdr.german-utf8.php, based on your system setup (utf8 or not...or both?)
Then you can translate the Strings and after that copy it to the desired directory.

Or you can let the package-info.xml do this for you like that:
I add  "<require-file name="gpdr.german-utf8.php" destination="$themedir/languages" />" into it...
Like this:
........
                <require-file name="gpdr.english.php" destination="$themedir/languages" />
<require-file name="gpdr.english-utf8.php" destination="$themedir/languages" />
<require-file name="gpdr.german-utf8.php" destination="$themedir/languages" />
.....

But then you also have to take care about the uninstall section and other things .

Also if updates are coming, you have to deal with them manually, since if there are changes or new strings coming,
you still have to place the new items in your language file and maybe you have to do other changes.
Do this only if you have previous experience with install packages and you really know what you are doing.
You have to check every update for conflicts with all the things you have changed.
So maybe editing the german -> moficication.german.....php file and place the other file(s) manually to the desired folder might be easier.

@vbgamer45
Hope that it is allowed to customize/change the install package of the mod to fit my personal situation
and make it easier for me than building a complete new mod for that,
because doing everything at one place is much easier to handle.

Then I would like to mention:
You insert the string defs in the modification.... files at the end by searching the "?>" pattern.
But if another mod does the same, the uninstall routine cant find...
"
"Your string defs ......sdf.fd.sf.sdf.f.dsf.f
sdfsdfsdfdsf dsf sdf sdf

?>"

Because the string defs from the other mod is still between yourcode and the ?>
"
"Your string defs......sdf.fd.sf.sdf.f.dsf.f
sdfsdfsdfdsf dsf sdf sdf

Code from an other mod dsa
sadas
ssad sad sa d

?>"

So for me personally,
i placed a Label like "//GDPR_Placeholder" in both of my modification... files and changed the search pattern to this label, so the uninstall is working,
even if another mod ist coming at the end of these files.
<search position="after"><![CDATA[
//GDPRplaceholder]]></search>


Or might there be other solutions to prevent the risk of unpossible automatic uninstall, if other things(modstuff coming) where placed there?


Quote from: CrescentEclipse on May 26, 2018, 06:47:15 AM
....But at the moment I am struggeling a little bit, because during the registration the privacy policy can't be displayed. My forum is only accessible for registered users, so is there any possible fix for this other than make it open to all visitors?
I tested with implementing the Privacy policy directly into the language files and strings, but this is still tricky if you have a english spelling policy,
because there are so many   '   you have to deal with, cause this was interpreted like the end of the String definition...
...nor really funny to deal with that....
...and all of the other occurences of chars which make problems  :( ;D
...and you have to do this every time the policy was changed. (nasty without Automatisation)

So therefore i asked here in the topic for the possibility to use a html file with the policy in it to show the users and also guests inside the registration process,
which then looks nice and can also be linked from own menu buttons and links whereever you you want.

Maybe vbgamer45 can do something for us?  :)

CrescentEclipse

I already created the german php files (gpdr.german_informal.php and gpdr.german_informal-utf8.php) and modified the XML file to automatically copy them to the right places incl. adding the german stings to Modifications.german_informal.php, but they do not seem to get loaded by the mod.

petb

Hmm, i just can say that my german-utf8 files where used.

Normaly the SMF was using the files automatically if present, and switch back to english, if not!?
So maybe SMF cant find yours?
No type mismatch in filenames?
You have the right permissions and such staff checked?

hugbear

Quote from: CrescentEclipse on May 26, 2018, 06:47:15 AM
But at the moment I am struggling a little bit, because during the registration the privacy policy can't be displayed. My forum is only accessible for registered users, so is there any possible fix for this other than make it open to all visitors?
Maybe you could create an extra board (category perhaps?) visible to the whole wide world, to contain a single topic that contains whatever you're trying to convey to guests prior to registration. Posting there should be disabled, of course. You might place it at the bottom of your forum, that way it'll still be accessible for review to registered members later without being ,,in their face", yet it would be the only thing visible to visitors.

Dav999

So, I've been following this thread for a while, and I wanted to share how I see things regarding GDPR. Disclaimer: this is my interpretation, not legal advice.

First of all, one of the bases for storing/processing personal information is legitimate interest of the controller/forum owner. If that applies, you don't need to ask consent, since only one of the requirements has to be met (but you may, there's nothing against meeting two requirements at the same time.) If you don't have legitimate interest in processing some data (so you don't actually need it) then you'd need to ask for consent (or meet one of the other requirements which rarely apply), and given you don't need the data, you can't lock people out for not giving consent for you collecting that unnecessary data.

I'd think the average forum has legitimate interest in all the information that is strictly necessary to have an account. Normally, that would be a username and email address, and the IP addresses will be recorded as well. You need the username for people to log in, and for users to recognize each other (and you also need to be able to identify people if needed for moderation purposes). The email address is needed for sending notifications the user chooses to receive, and for account recovery if someone forgets their password. And the IP address is needed for moderation purposes - you may have a rule against alternate accounts, you may need to ban someone to keep your forum safe and enjoyable, contact someone's ISP, etc.

Additional profile information like someone's birthdate can be added and removed by someone at will, and especially since none of that is asked during account registration (making it clear they don't need to enter it to make an account), I'd think anyone who enters their birthdate will be fully aware that it'll be stored, and shouldn't have to complain that just because they haven't given explicit consent, they didn't expect their birthdate to be stored in the database after voluntarily entering it in their profile. But you can also turn the profile field off if you're concerned, of course.

So as far as I can tell, the reason why companies are sending out mails like "we have changed/clarified our policies, if you keep using our services after the 25th of May you'll automatically agree to the changes", is not because they see that as consent for processing data (which would need to be explicit consent), but because all the data they collect is out of legitimate interests one way or another, and they drop that "if you keep using our services after this date" line because they can't or don't want to change (nor clarify) their policies without notifying people this way, so it's just a routine thing to do whenever their policies change.

So I hear some people say they're required to ask all members for consent for storing some personal data, but to me it seems that's not required in many cases. All you have to do, as far as I can tell, is make a privacy policy that clarifies what you collect and what reasons you have for that, and say there are no "third parties" or "partners" that any information is shared with (reserving the right to share info with law enforcement where circumstances make it necessary and appropriate). Provided that's actually the case for you. And you wouldn't need to force members to agree to it, it'd just need to be findable. You would need to include information about the right to be forgotten and access to data.

As for vbgamer45's GDPR helper mod: it's a good effort, but I do have a few critiques: the default privacy policy describes all sort of practices that most forums would never partake in: "tailor it to customer needs", "share your personal data with third parties with which we have partnered", "send you promotional information about third parties which we think you may find interesting", and other things.

About the data export feature; there are two different articles in the GDPR about exporting data, one is the right to see what data is being processed (for your own reference) and the other is the right to data portability, where the exported data has to be in a machine-readable format. However, data portability only applies for data where consent is required to process it, instead of legitimate interest, so a CSV format is not required here, and it would probably be nicer in HTML/PDF format or something like that. As for seeing what personal data is stored about someone, the export feature in the mod doesn't list IP addresses, so it's incomplete.

Also, barely anyone in Europe uses AM/PM time notation, so especially since users can set their own time formats and timezones in SMF, it's a bit strange a US-style date format is hardcoded everywhere, along with using the server timezone.

Oh, about cookies: I was pretty sure functional cookies are nothing to worry about, and don't need to be asked permission for.

CrescentEclipse

Quote from: petb on May 26, 2018, 09:20:04 AM
Hmm, i just can say that my german-utf8 files where used.

Normaly the SMF was using the files automatically if present, and switch back to english, if not!?
So maybe SMF cant find yours?
No type mismatch in filenames?
You have the right permissions and such staff checked?

Insterestingly the installer forgot or was not able to update the Modifications.german_informal.php, but displayed "check passed" during installation. Stange. Any ideas?

@hugbear
If that is the only solution... But I think it should be possible to have pages that all visitors can access, regardless the settings of the forum. Normally this is a strange idea, but in context to this law it has its purpose.

One question. Are private messages and other sections of the forum cleared as well when a user gets deleted?
I think there are more tables where personal information are stored.

Rob Lightbody

GDPR has been a bit of a nightmare for me and the team that help moderate my site.  It feels like yet another blow for the forum against the might of the Facebook groups (who as far as I can see haven't had to do anything for GDPR).

I would like to see the following features :-

- Ability to keep a forum account, but remove personal data from it (email address, IP address, and anything they've filled in).  This would allow the person to come back in future and be reactivated. 

- Similar to the above, but for a member who has died - maybe be marked in some way.

- An export function, for any member's data.

Kindred

the first one defeats the purpose of requesting an account to be deleted.
If someone asks to have their account deleted, then delete it.  You can leave the posts (as previously discussed) and delete the account. If the person decides to come back, you can use the standard feature or the admin toolbox mod to reassign the old posts to the new account.

as far as I can tell, there is no instruction in the GDPR regarding users who die.  SO, do what you want with that.

vbgamer has provided an export in his gdpr mod.
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

Rob Lightbody

Quote from: Kindred on May 28, 2018, 08:18:06 AM
the first one defeats the purpose of requesting an account to be deleted.
If someone asks to have their account deleted, then delete it.  You can leave the posts (as previously discussed) and delete the account. If the person decides to come back, you can use the standard feature or the admin toolbox mod to reassign the old posts to the new account.


No.  The account provides a way to link all that person's posts together, which is something valuable that's lost when their account's deleted.

there should be a way to keep it, but remove the hidden personal data from the database.

GRPR isn't going away, and applies to any forum that might have a European citizen as a member, i hope a future version of smf will have facilities built in.


gragra

Hello guys. Quick question.
I'd like to find out is it enough to run forum under GDPR if:
If user comes for first time: POP up appear with information about our cookies and privacy policy. They have ability to read it and agree. Or "If you don't agree don't use our site".
In privacy policy I'am explaining what information we're collecting and storing. And how we use it. Same with cookies.

And if user wants to be forgotten and delete account they have to write email.

My forum isn't company. It's just simple forum with advertisement.

Thank you for advice.

petb

Quote from: The QE2 Story Forum on May 28, 2018, 08:26:34 AM
Quote from: Kindred on May 28, 2018, 08:18:06 AM
the first one defeats the purpose of requesting an account to be deleted.
If someone asks to have their account deleted, then delete it.  You can leave the posts (as previously discussed) and delete the account. If the person decides to come back, you can use the standard feature or the admin toolbox mod to reassign the old posts to the new account.


No.  The account provides a way to link all that person's posts together, which is something valuable that's lost when their account's deleted.

there should be a way to keep it, but remove the hidden personal data from the database.

GRPR isn't going away, and applies to any forum that might have a European citizen as a member, i hope a future version of smf will have facilities built in.
Idea:

Change the Displayed-Name of the User, to "anonymous1" name you create.
Then delete the user, so that all persona data was deleted, but without deleting his Posts/Topics.

Then, later, you can add those posts,
which you can find with the anonymous name you have created,
to every user you want.

But then if the user comes back,
you have to remember in your brain that the name "anonymous1"
which is shown at the posts are the posts from the come back user,
because you are not allowed to store old data only for the case if a user comes back and wants his old posts  :)

So how do you 100% get sure that the come back user is the right one for that displayed name?
Any relation to real data of the gone user hast gone away after his deleting.

Is this right, or possible?

Starbuck501

Why worry about members coming back after they have their account deleted?
Surely this is looking for a problem that may never exist.

If a member did come back for some reason, just let them start afresh.

SeduzioneItaliana

New bug on my system:
when a new user fill the data and click on the button to proceed with the registration, the forum give an error window:

"We can not process your registration if do not agree to our Privacy Policy"

This way, nobody can made a new registration to forum...

Other bug:
error in forum errors log, when i acceed to the options of GDPR mod:

https://seduzioneitaliana.com/forum/index.php?action=gpdr;sa=settings
Applica Filtro: Mostra solo gli errori con lo stesso Messaggio8: Undefined index: admin_menu_name
File: /home/seduzion/public_html/forum/Sources/gpdr.php
Linea: 271

Can anybody help me? Thanks a lot.

zappaDPJ

Quote from: Kindred on May 28, 2018, 08:18:06 AM
as far as I can tell, there is no instruction in the GDPR regarding users who die.  SO, do what you want with that.

The regulation (specifically Recital 27) does not apply to the personal data of deceased persons although it does go on to say Member States may provide for rules regarding the processing of personal data of deceased persons. It seems none have as yet.

SeduzioneItaliana


Bug solved.
If you have problems in registration and you have a customized theme, edit the register.template.php and insert the code finded under GDPR in the standard register.template.php

ITalian translation for GDPR.italian.php :

<?php
/*
GDPR Helper
Version 1.0
by:vbgamer45
https://www.smfhacks.com
Copyright 2018 SMFHacks.com

############################################
License Information:

Links to https://www.smfhacks.com must remain unless
branding free option is purchased.
#############################################

*/

// Title string
$txt['gpdr_title'] = 'GDPR Helper';

$txt['gpdr_enable_privacy_policy'] = 'Abilita la Privacy Policy';
$txt['gpdr_force_privacy_agree'] = 'Obbliga tutti i membri a sottoscrivere la Privacy Policy dopo una modifica';
$txt['gpdr_force_agreement_agree'] = 'Obbliga tutti i membri a sottoscrivere le condizioni di uso se modificate';
$txt['gpdr_clear_memberinfo'] = 'Elimina IP, EMail e username degli utenti eliminati';
$txt['gpdr_allow_export_userdata'] = 'Abilita i membri ad esportare i loro dati';


$txt['gpdr_text_settings'] = 'Opzioni';
$txt['gpdr_privacypolicy'] = 'Privacy Policy';
$txt['gpdr_save_settings']  = 'Salva Opzioni';

// Latest Version:
$txt['gpdr_txt_latestversion'] = 'Ultima versione: ';
$txt['gpdr_txt_yourversion'] = 'La tua versione: ';
$txt['gpdr_txt_version_outofdate'] = 'La tua versione di GDPR Helper non è aggiornata!<br /><a href=\"https://www.smfhacks.com/index.php?action=downloads;sa=view;down=207\" target=\"_blank\">Scarica la ultima versione ora!</a>';


$txt['gpdr_txt_update']  = 'Aggiorna';
$txt['gpdr_error_no_privacypolicy'] = 'Nussun contenuto per la privacy policy inserito';

$txt['gpdr_err_writable_policy'] = 'Privacy Policy di sola lettura';
$txt['gpdr_policy_agree'] = 'Accetto la Privacy Policy';


$txt['gpdr_txt_exportdata']  = 'Esporta i Dati';

$txt['gpdr_agreement_agree'] = 'Accetto i termini del regolamento.';
$txt['gpdr_registration_agreement'] = 'Accordo di registrazione';
$txt['gpdr_agreement_decline'] = 'Rifiuto i termini del regolamento.';


$txt['gpdr_admin_settings_desc'] = 'Opzioni di GDPR Helper';
$txt['gpdr_admin_privacypolicy_desc'] = 'Gestisci ed aggiorna la tua Privacy Policy';

$txt['gpdr_txt_privacy_header'] = 'Privacy Policy/Cookies';
$txt['gpdr_txt_privacy_desc'] = 'Raccogliamo dati personali durante la navigazione nel sito. Usiamo cookies per identificarla e migliorare la sua esperienza di navigazione. Per conoscere i dettagli, leggere la nostra <a href="' $scripturl '?action=gpdr;sa=privacypolicy" target="_blank">Privacy Policy</a>';
$txt['gpdr_txt_privacy_agree'] = 'Accetto e sottoscrivo la Privacy Policy';
$txt['gpdr_txt_privacy_decline'] = 'Non accetto la Privacy Policy';
$txt['gpdr_txt_privacy_fail'] = 'Non possiamo procedere alla sua registrazione se non accetta la Privacy Policy';

$txt['gpdr_txt_export_information'] =  'Informazioni sull\'esportazione dati personali utente';

$txt['gpdr_err_export_user'] =  'Non possiamo esportare informazioni degli utenti. possiamo solo esportare i suoi dati personali';

$txt['gpdr_txt_user_exportdata']  = 'Esporta i dati del profilo';
$txt['gpdr_txt_user_exportdata2']  = 'Clicca <a href="%link">QUI</a> per esportare i dati utente in un file CSV';

$txt['gpdr_profile_memid'] = 'ID Membro';
$txt['gpdr_profile_username'] = 'Nome Utente';
$txt['gpdr_profile_displayname'] = 'Nome visualizzato';
$txt['gpdr_profile_email'] = 'Email';
$txt['gpdr_profile_totalposts'] = 'Posts totali';
$txt['gpdr_profile_dateregistered'] = 'Data di registrazione';
$txt['gpdr_profile_gender'] = 'Sesso';
$txt['gpdr_profile_birthdate'] = 'Data di nascita';
$txt['gpdr_profile_personaltext'] = 'Testo personale';
$txt['gpdr_profile_websitetitle'] = 'Sito internet';
$txt['gpdr_profile_websiteurl'] = 'URL del sito';
$txt['gpdr_profile_signature'] = 'Firma';

$txt['gpdr_txt_message_exportdata']  = 'Esporta posts';

$txt['gpdr_txt_message_exportdata2']  = 'Esporta i messaggi che hai fatto. Inserisci il numero del messaggio iniziale e quello del messaggio finale. Massimo 1000 messaggi per volta';

$txt['gpdr_txt_message_startid']  =  'Numero del messaggio iniziale: ';
$txt['gpdr_txt_message_endid']  =  'Numero del messaggio finale: ';


$txt['gpdr_txt_message_subject']  = 'Soggetto: ';
$txt['gpdr_txt_message_date']  = 'Data: ';
$txt['gpdr_txt_message_body']  = 'Corpo: ';

$txt['gpdr_err_export_msg_limit'] =  'Più di 1000 messaggi selezionati. Per favore selezionate un numero inferiore';

$txt['gpdr_err_no_ssl'] = 'Non abbiamo trovato alcun SSl nel vostro forum! Assicuratevi che SSL sia installato: è un parametro richiesto.<br />Forniamo un servizio se avete bisogno di aiuto con SSL <a href="https://www.smfhacks.com/index.php/topic,9587.0.html" target="_blank">https://www.smfhacks.com</a>';
?>



In modifications.italian.php, before the ?>

// Begin GPDR Helper Text Strings
$txt['gpdr_title'] = 'GDPR Helper';

$txt['gpdr_privacypolicy'] = 'Privacy Policy';
$txt['gpdr_text_settings'] = 'Opzioni';
$txt['gpdr_txt_exportdata']  = 'Esporta i dati';

$txt['gpdr_txt_privacy_header'] = 'Privacy Policy/Cookies';
$txt['gpdr_txt_privacy_desc'] = 'Raccogliamo dati personali durante la navigazione. Usiamo cookies per identificarla e migliorare la sua esperienza. Per i dettagli, leggere la nostra <a href="' . $scripturl . '?action=gpdr;sa=privacypolicy" target="_blank">Privacy Policy</a>';
$txt['gpdr_txt_privacy_agree'] = 'Sono d\'accordo ed accetto la Privacy Policy';
$txt['gpdr_txt_privacy_fail'] = 'Non possiamo procedere alla registrazione se non accettate la nostra Privacy Policy';
// END GPDR Helper Text Strings



Kindred

SeduzioneItaliana, that should have been done automatically -- or, at least, you should have had the option to install across all custom themes with any 2.0.x system. Perhaps you missed that option during the installation
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

lurkalot

Quote from: Kindred on May 29, 2018, 01:51:03 PM
SeduzioneItaliana, that should have been done automatically -- or, at least, you should have had the option to install across all custom themes with any 2.0.x system. Perhaps you missed that option during the installation

Don't think you can select your custom themes during install, or at least I didn't see that option.  It works on them ok though.

Quote from: Shambles on May 22, 2018, 03:14:19 AM
Quote
It seems that it installs only on default theme and does not support others?


Works perfectly fine on all my themes. Just because there's no specific "theme selector" during the installation phase doesn't mean it excludes non-default themes.

Advertisement: