Merge pull request #5089 from tobiasd/20180519-tos

privacy statement
This commit is contained in:
Hypolite Petovan 2018-05-20 08:20:16 -04:00 committed by GitHub
commit c41332364f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 58 additions and 11 deletions

View file

@ -20,6 +20,7 @@ use Friendica\Model\Contact;
use Friendica\Model\Item; use Friendica\Model\Item;
use Friendica\Model\User; use Friendica\Model\User;
use Friendica\Module\Login; use Friendica\Module\Login;
use Friendica\Module\Tos;
use Friendica\Util\DateTimeFormat; use Friendica\Util\DateTimeFormat;
use Friendica\Util\Temporal; use Friendica\Util\Temporal;
@ -296,12 +297,15 @@ function admin_content(App $a)
*/ */
function admin_page_tos(App $a) function admin_page_tos(App $a)
{ {
$tos = new Tos();
$t = get_markup_template('admin/tos.tpl'); $t = get_markup_template('admin/tos.tpl');
return replace_macros($t, [ return replace_macros($t, [
'$title' => L10n::t('Administration'), '$title' => L10n::t('Administration'),
'$page' => L10n::t('Terms of Service'), '$page' => L10n::t('Terms of Service'),
'$displaytos' => ['displaytos', L10n::t('Display Terms of Service'), Config::get('system', 'tosdisplay'), L10n::t('Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page.')], '$displaytos' => ['displaytos', L10n::t('Display Terms of Service'), Config::get('system', 'tosdisplay'), L10n::t('Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page.')],
'$displayprivstatement' => ['displayprivstatement', L10n::t('Display Privacy Statement'), Config::get('system','tosprivstatement'), L10n::t('Show some informations regarding the needed information to operate the node according e.g. to <a href="%s" target="_blank">EU-GDPR</a>.','https://en.wikipedia.org/wiki/General_Data_Protection_Regulation')], '$displayprivstatement' => ['displayprivstatement', L10n::t('Display Privacy Statement'), Config::get('system','tosprivstatement'), L10n::t('Show some informations regarding the needed information to operate the node according e.g. to <a href="%s" target="_blank">EU-GDPR</a>.','https://en.wikipedia.org/wiki/General_Data_Protection_Regulation')],
'$preview' => L10n::t('Privacy Statement Preview'),
'$privtext' => $tos->privacy_complete,
'$tostext' => ['tostext', L10n::t('The Terms of Service'), Config::get('system', 'tostext'), L10n::t('Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below.')], '$tostext' => ['tostext', L10n::t('The Terms of Service'), Config::get('system', 'tostext'), L10n::t('Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below.')],
'$form_security_token' => get_form_security_token("admin_tos"), '$form_security_token' => get_form_security_token("admin_tos"),
'$submit' => L10n::t('Save Settings'), '$submit' => L10n::t('Save Settings'),

View file

@ -12,6 +12,7 @@ use Friendica\Core\PConfig;
use Friendica\Core\System; use Friendica\Core\System;
use Friendica\Core\Worker; use Friendica\Core\Worker;
use Friendica\Model\User; use Friendica\Model\User;
use Friendica\Module\Tos;
use Friendica\Util\DateTimeFormat; use Friendica\Util\DateTimeFormat;
require_once 'include/enotify.php'; require_once 'include/enotify.php';
@ -252,6 +253,8 @@ function register_content(App $a)
$tpl = $arr['template']; $tpl = $arr['template'];
$tos = new Tos();
$o = replace_macros($tpl, [ $o = replace_macros($tpl, [
'$oidhtml' => $oidhtml, '$oidhtml' => $oidhtml,
'$invitations' => Config::get('system', 'invitation_only'), '$invitations' => Config::get('system', 'invitation_only'),
@ -286,6 +289,8 @@ function register_content(App $a)
'$importt' => L10n::t('Import your profile to this friendica instance'), '$importt' => L10n::t('Import your profile to this friendica instance'),
'$showtoslink' => Config::get('system', 'tosdisplay'), '$showtoslink' => Config::get('system', 'tosdisplay'),
'$tostext' => L10n::t('Terms of Service'), '$tostext' => L10n::t('Terms of Service'),
'$showprivstatement' => Config::get('system', 'tosprivstatement'),
'$privstatement' => $tos->privacy_complete,
'$baseurl' => System::baseurl(), '$baseurl' => System::baseurl(),
'$form_security_token' => get_form_security_token("register") '$form_security_token' => get_form_security_token("register")
]); ]);

View file

@ -16,6 +16,29 @@ use Friendica\Content\Text\BBCode;
class Tos extends BaseModule class Tos extends BaseModule
{ {
// Some text elements we need more than once to keep updating them easy.
public $privacy_operate;
public $privacy_distribute;
public $privacy_delete;
public $privacy_complete;
/**
* @brief constructor for the module, initializing the text variables
*
* To make the text variables available outside of the module, they need to
* be properties of the class, however cannot be set directly as the property
* cannot depend on a function result when declaring the variable.
**/
public function __construct()
{
$this->privacy_operate = L10n::t('At the time of registration, and for providing communications between the user account and their contacts, the user has to provide a display name (pen name), an username (nickname) and a working email address. The names will be accessible on the profile page of the account by any visitor of the page, even if other profile details are not displayed. The email address will only be used to send the user notifications about interactions, but wont be visibly displayed. The listing of an account in the node\'s user directory or the global user directory is optional and can be controlled in the user settings, it is not necessary for communication.');
$this->privacy_distribute = L10n::t('This data is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional private data that may be transmitted to the communication partners accounts.');
$this->privacy_delete = L10n::t('At any point in time a logged in user can export their account data from the <a href="%1$s/settings/uexport">account settings</a>. If the user wants to delete their account they can do so at <a href="%1$s/removeme">%1$s/removeme</a>. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners.', System::baseurl());
// In some cases we don't need every single one of the above separate, but all in one block.
// So here is an array to look over
$this->privacy_complete = [L10n::t('Privacy Statement'), $this->privacy_operate, $this->privacy_distribute, $this->privacy_delete];
}
/** /**
* @brief initialize the TOS module. * @brief initialize the TOS module.
* *
@ -42,16 +65,15 @@ class Tos extends BaseModule
**/ **/
public static function content() { public static function content() {
$tpl = get_markup_template('tos.tpl'); $tpl = get_markup_template('tos.tpl');
if (Config::get('system', 'tosdisplay')) if (Config::get('system', 'tosdisplay')) {
{
return replace_macros($tpl, [ return replace_macros($tpl, [
'$title' => L10n::t("Terms of Service"), '$title' => L10n::t('Terms of Service'),
'$tostext' => BBCode::convert(Config::get('system', 'tostext')), '$tostext' => BBCode::convert(Config::get('system', 'tostext')),
'$displayprivstatement' => Config::get('system', 'tosprivstatement'), '$displayprivstatement' => Config::get('system', 'tosprivstatement'),
'$privstatementtitle' => L10n::t("Privacy Statement"), '$privstatementtitle' => L10n::t('Privacy Statement'),
'$privoperate' => L10n::t('At the time of registration, and for providing communications between the user account and their contacts, the user has to provide a display name (pen name), an username (nickname) and a working email address. The names will be accessible on the profile page of the account by any visitor of the page, even if other profile details are not displayed. The email address will only be used to send the user notifications about interactions, but wont be visibly displayed. The listing of an account in the node\'s user directory or the global user directory is optional and can be controlled in the user settings, it is not necessary for communication.'), '$privacy_operate' => L10n::t('At the time of registration, and for providing communications between the user account and their contacts, the user has to provide a display name (pen name), an username (nickname) and a working email address. The names will be accessible on the profile page of the account by any visitor of the page, even if other profile details are not displayed. The email address will only be used to send the user notifications about interactions, but wont be visibly displayed. The listing of an account in the node\'s user directory or the global user directory is optional and can be controlled in the user settings, it is not necessary for communication.'),
'$privdistribute' => L10n::t('This data is required for communication and is passed on to the nodes of the communication partners. Users can enter additional private data that may be transmitted to the communication partners accounts.'), '$privacy_distribute' => L10n::t('This data is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional private data that may be transmitted to the communication partners accounts.'),
'$privdelete' => L10n::t('At any point in time a logged in user can export their account data from the <a href="%1$s/settings/uexport">account settings</a>. If the user wants to delete their account they can do so at <a href="%1$s/removeme">%1$s/removeme</a>. The deletion of the account will be permanent.', System::baseurl()) '$privacy_delete' => L10n::t('At any point in time a logged in user can export their account data from the <a href="%1$s/settings/uexport">account settings</a>. If the user wants to delete their account they can do so at <a href="%1$s/removeme">%1$s/removeme</a>. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners.', System::baseurl())
]); ]);
} else { } else {
return; return;

View file

@ -8,5 +8,9 @@
{{include file="field_textarea.tpl" field=$tostext}} {{include file="field_textarea.tpl" field=$tostext}}
<div class="submit"><input type="submit" name="page_tos" value="{{$submit|escape:'html'}}" /></div> <div class="submit"><input type="submit" name="page_tos" value="{{$submit|escape:'html'}}" /></div>
</form> </form>
<h2>{{$preview}}</h2>
{{for $i=1 to 3}}
<p>{{$privtext[$i]}}</p>
{{/for}}
</div> </div>

View file

@ -67,6 +67,12 @@
{{if $showtoslink}} {{if $showtoslink}}
<p><a href="{{$baseurl}}/tos">{{$tostext}}</a></p> <p><a href="{{$baseurl}}/tos">{{$tostext}}</a></p>
{{/if}} {{/if}}
{{if $showprivstatement}}
<h4>{{$privstatement.0}}</h4>
{{for $i=1 to 3}}
<p>{{$privstatement[$i]}}</p>
{{/for}}
{{/if}}
<div id="register-submit-wrapper"> <div id="register-submit-wrapper">
<input type="submit" name="submit" id="register-submit-button" value="{{$regbutt|escape:'html'}}" /> <input type="submit" name="submit" id="register-submit-button" value="{{$regbutt|escape:'html'}}" />

View file

@ -63,6 +63,12 @@
{{if $showtoslink}} {{if $showtoslink}}
<p><a href="{{$baseurl}}/tos">{{$tostext}}</a></p> <p><a href="{{$baseurl}}/tos">{{$tostext}}</a></p>
{{/if}} {{/if}}
{{if $showprivstatement}}
<h4>{{$privstatement.0}}</h4>
{{for $i=1 to 3}}
<p>{{$privstatement[$i]}}</p>
{{/for}}
{{/if}}
<div id="register-submit-wrapper" class="pull-right"> <div id="register-submit-wrapper" class="pull-right">
<button type="submit" name="submit" id="register-submit-button" class="btn btn-primary" value="{{$regbutt|escape:'html'}}">{{$regbutt|escape:'html'}}</button> <button type="submit" name="submit" id="register-submit-button" class="btn btn-primary" value="{{$regbutt|escape:'html'}}">{{$regbutt|escape:'html'}}</button>