aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Zotlabs/Lib/Apps.php2
-rw-r--r--Zotlabs/Lib/ThreadItem.php4
-rw-r--r--Zotlabs/Module/New_channel.php20
-rw-r--r--Zotlabs/Module/Oauthinfo.php23
-rw-r--r--Zotlabs/Module/Well_known.php10
-rw-r--r--doc/fr/gdpr1.md77
-rw-r--r--include/js_strings.php10
-rw-r--r--include/oauth.php2
-rw-r--r--include/text.php4
-rwxr-xr-xutil/add_addon_repo4
-rwxr-xr-xutil/add_theme_repo4
-rwxr-xr-xutil/add_widget_repo4
-rwxr-xr-xutil/update_addon_repo4
-rwxr-xr-xutil/update_theme_repo4
-rwxr-xr-xutil/update_widget_repo4
-rw-r--r--view/js/mod_new_channel.js13
-rwxr-xr-xview/tpl/conv_item.tpl2
-rwxr-xr-xview/tpl/js_strings.tpl12
18 files changed, 183 insertions, 20 deletions
diff --git a/Zotlabs/Lib/Apps.php b/Zotlabs/Lib/Apps.php
index 24cb4a626..2dded1aaa 100644
--- a/Zotlabs/Lib/Apps.php
+++ b/Zotlabs/Lib/Apps.php
@@ -45,6 +45,8 @@ class Apps {
}
}
+ call_hooks('get_system_apps',$ret);
+
return $ret;
}
diff --git a/Zotlabs/Lib/ThreadItem.php b/Zotlabs/Lib/ThreadItem.php
index c7a2c9373..0fed78158 100644
--- a/Zotlabs/Lib/ThreadItem.php
+++ b/Zotlabs/Lib/ThreadItem.php
@@ -102,6 +102,9 @@ class ThreadItem {
if($item['author']['xchan_network'] === 'rss')
$shareable = true;
+ $privacy_warning = false;
+ if($item['owner']['xchan_network'] === 'activitypub')
+ $privacy_warning = true;
$mode = $conv->get_mode();
@@ -370,6 +373,7 @@ class ThreadItem {
'editedtime' => (($item['edited'] != $item['created']) ? sprintf( t('last edited: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['edited'], 'r')) : ''),
'expiretime' => (($item['expires'] > NULL_DATE) ? sprintf( t('Expires: %s'), datetime_convert('UTC', date_default_timezone_get(), $item['expires'], 'r')):''),
'lock' => $lock,
+ 'privacy_warning' => $privacy_warning,
'verified' => $verified,
'unverified' => $unverified,
'forged' => $forged,
diff --git a/Zotlabs/Module/New_channel.php b/Zotlabs/Module/New_channel.php
index c946961bc..97a46a43e 100644
--- a/Zotlabs/Module/New_channel.php
+++ b/Zotlabs/Module/New_channel.php
@@ -41,7 +41,7 @@ class New_channel extends \Zotlabs\Web\Controller {
$test[] = legal_webbie($x);
// fullname plus random number
$test[] = legal_webbie($x) . mt_rand(1000,9999);
-
+
json_return_and_die(check_webbie($test));
}
@@ -49,7 +49,10 @@ class New_channel extends \Zotlabs\Web\Controller {
require_once('library/urlify/URLify.php');
$result = array('error' => false, 'message' => '');
$n = trim($_REQUEST['nick']);
-
+ if(! $n) {
+ $n = trim($_REQUEST['name']);
+ }
+
$x = false;
if(get_config('system','unicode_usernames')) {
@@ -58,9 +61,20 @@ class New_channel extends \Zotlabs\Web\Controller {
if((! $x) || strlen($x) > 64)
$x = strtolower(\URLify::transliterate($n));
-
+
+
$test = array();
+ // first name
+ if(strpos($x,' '))
+ $test[] = legal_webbie(substr($x,0,strpos($x,' ')));
+ if($test[0]) {
+ // first name plus first initial of last
+ $test[] = ((strpos($x,' ')) ? $test[0] . legal_webbie(trim(substr($x,strpos($x,' '),2))) : '');
+ // first name plus random number
+ $test[] = $test[0] . mt_rand(1000,9999);
+ }
+
$n = legal_webbie($x);
if(strlen($n)) {
$test[] = $n;
diff --git a/Zotlabs/Module/Oauthinfo.php b/Zotlabs/Module/Oauthinfo.php
new file mode 100644
index 000000000..2d10913c4
--- /dev/null
+++ b/Zotlabs/Module/Oauthinfo.php
@@ -0,0 +1,23 @@
+<?php
+
+namespace Zotlabs\Module;
+
+
+class Oauthinfo extends \Zotlabs\Web\Controller {
+
+
+ function init() {
+
+ $ret = [
+ 'issuer' => z_root(),
+ 'authorization_endpoint' => z_root() . '/authorize',
+ 'token_endpoint' => z_root() . '/token',
+ 'response_types_supported' => [ 'code', 'token', 'id_token', 'code id_token', 'token id_token' ]
+ ];
+
+
+ json_return_and_die($ret);
+ }
+
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Well_known.php b/Zotlabs/Module/Well_known.php
index 177de2323..442994b54 100644
--- a/Zotlabs/Module/Well_known.php
+++ b/Zotlabs/Module/Well_known.php
@@ -50,7 +50,15 @@ class Well_known extends \Zotlabs\Web\Controller {
$module = new \Zotlabs\Module\Hostxrd();
$module->init();
break;
-
+
+ case 'oauth-authorization-server':
+ \App::$argc -= 1;
+ array_shift(\App::$argv);
+ \App::$argv[0] = 'oauthinfo';
+ $module = new \Zotlabs\Module\Oauthinfo();
+ $module->init();
+ break;
+
case 'dnt-policy.txt':
echo file_get_contents('doc/dnt-policy.txt');
killme();
diff --git a/doc/fr/gdpr1.md b/doc/fr/gdpr1.md
new file mode 100644
index 000000000..bc0dfe056
--- /dev/null
+++ b/doc/fr/gdpr1.md
@@ -0,0 +1,77 @@
+Avis de confidentialité Mai 2018
+
+Comment vos informations seront utilisées
+=================================
+
+Les informations que vous fournissez à ce site Web peuvent être stockées et utilisées pour vous fournir des services.
+
+Nous avons besoin d'une adresse e-mail pour identifier le titulaire du compte. Ceci ne sera pas partagé avec tout autre site Web ou service. Il est utilisé pour vous envoyer des notifications concernant votre compte et effectuer des tâches administratives telles que la réinitialisation de votre mot de passe. Vous avez la possibilité de refuser toutes les notifications par courriel par le biais de vos paramètres.
+
+Les canaux de communication créés sur ce site web nécessitent un nom et une photo ou un avatar. Un avatar par défaut sera choisi si vous n'en fournissez pas. Le nom, l'avatar, et un lien vers la page web du canal sera partagée avec d'autres serveurs et services afin de se référer à cette identité. Le nom n'a pas besoin d'être votre vrai nom et la photo ou l'avatar n'a pas besoin de vous ressembler.
+
+Toutes les autres informations que vous fournissez à ce site Web sont facultatives.
+
+En tant que service de communication sociale et de stockage dans les nuages, vous utiliserez généralement ce site Web pour partager des informations avec d'autres personnes. Nous fournissons une gamme d'options de confidentialité pour vous permettre de limiter ce partage à ceux que vous choisissez.
+
+Traitement de vos informations
+==============================
+
+Notre traitement de vos informations est limité à leur stockage pour que vous puissiez les utiliser. Nous POUVONS tenir des registres d'activité pour aider à diagnostiquer les problèmes de logiciel et à maintenir la sécurité du système contre
+intrusion. Ces journaux sont régulièrement effacés après quelques jours.
+
+Nous PEUVONS (si vous avez fourni cette permission) essayer de suggérer des amitiés ou des connexions basées sur des amitiés
+sur l'analyse des informations accessibles au public concernant vos connexions. Il s'agit actuellement du "traitement" de données le plus avancé effectué sur ce site Web. Vous pouvez restreindre l'accès à ces informations si ce traitement n'est pas souhaité.
+
+S'il est fourni, nous PEUVONS utiliser votre sexe pour formuler des messages texte dans votre langue maternelle.
+
+Dans tous les autres cas, vos données sont stockées dans le cadre de la politique de confidentialité de votre choix et au mieux.
+de notre capacité n'est partagée qu'avec ceux avec qui vous avez choisi de la partager.
+
+Nous ne partageons pas vos informations personnelles avec des tiers et n'analysons pas votre comportement ou vos informations personnelles.
+Nous n'avons pas de publicité ou de relations d'affaires avec les annonceurs.
+
+Nous PEUVONS être invités ou forcés de divulguer les informations que vous nous avez fournies en réponse à des procédures pénales et judiciaires légitimes. Dans la mesure du possible, nous vous en aviserons si cela se produit.
+
+Accès à vos informations
+==========================
+
+Certaines communications sont partagées avec d'autres sites Web. Ceux qui utilisent le même logiciel vont généralement
+ont des politiques similaires en matière de protection de la vie privée.
+
+Il se peut que l'on vous montre des vidéos intégrées et des liens fournis pour visiter d'autres sites Web dans le cadre de vos activités quotidiennes à l'aide de ce site Web. Cette mai vous exposer à la surveillance par des services externes, tels que (mais non limité à) Facebook, Twitter et Google. Chaque opérateur de site Web est autorisé à configurer si le contenu intégré est autorisé ou non.
+
+L'accès à vos données personnelles et aux fichiers stockés est sous votre contrôle.
+
+Notre stockage de vos données est fourni sous votre consentement implicite par le biais de votre utilisation continue du service. Vous pouvez retirer ce consentement à tout moment et, en cas de suppression de compte, nous supprimerons toutes les toutes les données qui vous appartiennent. Le processus de suppression peut prendre plusieurs jours, car nous faisons également tout notre possible pour le supprimer de tous les sites Internet qui ont reçu une copie.
+
+Toutes les données et tous les fichiers stockés pour un canal de communication sont à votre disposition pour
+télécharger pour les pupilles d'archives ou pour les transférer sur un autre site Web compatible.
+
+Vos droits
+===========
+
+En vertu du règlement général sur la protection des données
+(GDPR) et la Loi sur la protection des données 2018 (DPA) , vous disposez d'un certain nombre de droits en ce qui concerne vos données personnelles.
+Vous avez le droit de nous demander l'accès et la rectification ou l'effacement de vos données personnelles, le droit de restreindre le traitement, de s'opposer au traitement ainsi que, dans certaines circonstances, le droit à la portabilité des données.
+
+Si vous avez donné votre consentement au traitement de vos données, vous avez le droit (dans certaines circonstances) de retirer ce consentement à tout moment, ce qui n'affectera pas la licéité du traitement avant le retrait de votre consentement.
+
+Vous avez le droit de déposer une plainte auprès du Commissariat à l'information si vous estimez que nous n'avons pas respecté les exigences du GDPR ou de la DPA 18 en ce qui concerne vos données personnelles.
+
+Identité et coordonnées du responsable du traitement et du délégué à la protection des données
+
+[NOM DE L'ENTREPRISE]
+est le contrôleur [et le processeur]
+des données aux fins de la LPD 18 et du RDPPIB. 3
+
+Si vous avez des questions sur la manière dont vos données sont traitées, vous pouvez nous contacter :
+
+[NOM]
+Offre de protection des données à
+[COURRIEL]
+
+[NOM] [TITRE]
+[COURRIEL]
+
+ou vous pouvez écrire à l'adresse suivante []
diff --git a/include/js_strings.php b/include/js_strings.php
index 936594291..d9038e838 100644
--- a/include/js_strings.php
+++ b/include/js_strings.php
@@ -23,6 +23,16 @@ function js_strings() {
'$linkurl' => t('Please enter a link URL'),
'$leavethispage' => t('Unsaved changes. Are you sure you wish to leave this page?'),
'$location' => t('Location'),
+ '$lovely' => t('lovely'),
+ '$wonderful' => t('wonderful'),
+ '$fantastic' => t('fantastic'),
+ '$great' => t('great'),
+ '$nick_invld1' => t('Your chosen nickname was either already taken or not valid. Please use our suggestion ('),
+ '$nick_invld2' => t(') or enter a new one.'),
+ '$nick_valid' => t('Thank you, this nickname is valid.'),
+ '$name_empty' => t('A channel name is required.'),
+ '$name_ok1' => t('This is a '),
+ '$name_ok2' => t(' channel name'),
// translatable prefix and suffix strings for jquery.timeago -
// using the defaults set below if left untranslated, empty strings if
diff --git a/include/oauth.php b/include/oauth.php
index a3c52bf27..845ec4558 100644
--- a/include/oauth.php
+++ b/include/oauth.php
@@ -79,7 +79,7 @@ class ZotOAuth1DataStore extends OAuth1DataStore {
$k = $consumer;
}
- $r = q("INSERT INTO tokens (id, secret, client_id, auth_scope, expires) VALUES ('%s','%s','%s','%s', %d)",
+ $r = q("INSERT INTO tokens (id, secret, client_id, auth_scope, expires, uid) VALUES ('%s','%s','%s','%s', %d, 0)",
dbesc($key),
dbesc($sec),
dbesc($k),
diff --git a/include/text.php b/include/text.php
index aafba2168..34063cdd7 100644
--- a/include/text.php
+++ b/include/text.php
@@ -572,7 +572,7 @@ function item_message_id() {
$r = q("SELECT id FROM item WHERE mid = '%s' LIMIT 1",
dbesc($mid));
- if(count($r))
+ if($r)
$dups = true;
} while($dups == true);
@@ -593,7 +593,7 @@ function photo_new_resource() {
$r = q("SELECT id FROM photo WHERE resource_id = '%s' LIMIT 1",
dbesc($resource));
- if(count($r))
+ if($r)
$found = true;
} while($found === true);
diff --git a/util/add_addon_repo b/util/add_addon_repo
index 6bd9686a1..d82081470 100755
--- a/util/add_addon_repo
+++ b/util/add_addon_repo
@@ -1,4 +1,6 @@
-#!/usr/bin/env bash -f
+#!/usr/bin/env bash
+
+set -f
if [ $# -lt 2 ]; then
echo usage: $0 repo_url nickname
diff --git a/util/add_theme_repo b/util/add_theme_repo
index 30898dc01..7ae9cdb02 100755
--- a/util/add_theme_repo
+++ b/util/add_theme_repo
@@ -1,4 +1,6 @@
-#!/usr/bin/env bash -f
+#!/usr/bin/env bash
+
+set -f
if [ $# -lt 2 ]; then
echo usage: $0 repo_url nickname
diff --git a/util/add_widget_repo b/util/add_widget_repo
index a8e888cdc..77774587c 100755
--- a/util/add_widget_repo
+++ b/util/add_widget_repo
@@ -1,4 +1,6 @@
-#!/usr/bin/env bash -f
+#!/usr/bin/env bash
+
+set -f
if [ $# -lt 2 ]; then
echo usage: $0 repo_url nickname
diff --git a/util/update_addon_repo b/util/update_addon_repo
index efa46c668..0e471eb4f 100755
--- a/util/update_addon_repo
+++ b/util/update_addon_repo
@@ -1,4 +1,6 @@
-#!/usr/bin/env bash -f
+#!/usr/bin/env bash
+
+set -f
if [ $# -ne 1 ]; then
echo usage: $0 repository
diff --git a/util/update_theme_repo b/util/update_theme_repo
index 609e0cde0..b4de55568 100755
--- a/util/update_theme_repo
+++ b/util/update_theme_repo
@@ -1,4 +1,6 @@
-#!/usr/bin/env bash -f
+#!/usr/bin/env bash
+
+set -f
if [ $# -ne 1 ]; then
diff --git a/util/update_widget_repo b/util/update_widget_repo
index c88a1e637..70d09f959 100755
--- a/util/update_widget_repo
+++ b/util/update_widget_repo
@@ -1,4 +1,6 @@
-#!/usr/bin/env bash -f
+#!/usr/bin/env bash
+
+set -f
if [ $# -ne 1 ]; then
echo usage: $0 repository
diff --git a/view/js/mod_new_channel.js b/view/js/mod_new_channel.js
index c01029046..10a94796c 100644
--- a/view/js/mod_new_channel.js
+++ b/view/js/mod_new_channel.js
@@ -43,19 +43,20 @@
$("#nick_help_loading").show();
$("#nick_help_text").hide();
+ var zreg_name = $("#id_name").val();
var zreg_nick = $("#id_nickname").val();
- $.get("new_channel/checkaddr.json?f=&nick=" + encodeURIComponent(zreg_nick),function(data) {
+ $.get("new_channel/checkaddr.json?f=&nick=" + encodeURIComponent(zreg_nick) + '&name=' + encodeURIComponent(zreg_name),function(data) {
$("#id_nickname").val(data);
if(data !== zreg_nick) {
$("#id_nickname").addClass('is-validated');
$("#help_nickname").addClass('text-danger').removeClass('text-muted');
- $("#help_nickname").html('Your chosen nickname was either already taken or not valid. Please use our suggestion (' + data + ') or enter a new one.');
+ $("#help_nickname").html(aStr['nick_invld1'] + data + aStr['nick_invld2']);
$("#id_nickname").focus();
}
else {
$("#id_nickname").addClass('is-validated');
$("#help_nickname").addClass('text-success').removeClass('text-muted').removeClass('text-danger');
- $("#help_nickname").html("Thank you, this nickname is valid.");
+ $("#help_nickname").html(aStr['nick_valid']);
}
$("#nick_help_loading").hide();
$("#nick_help_text").show();
@@ -69,18 +70,18 @@
if($("#id_name").hasClass('is-validated'))
return true;
- var verbs = ['lovely', 'wonderful', 'gorgeous', 'great'];
+ var verbs = [ aStr['lovely'], aStr['wonderful'], aStr['fantastic'], aStr['great'] ];
var verb = verbs[Math.floor((Math.random() * 4) + 0)];
if(! $("#id_name").val()) {
$("#id_name").focus();
$("#help_name").addClass('text-danger').removeClass('text-muted');
- $("#help_name").html("A channel name is required.");
+ $("#help_name").html(aStr['name_empty']);
return false;
}
else {
$("#help_name").addClass('text-success').removeClass('text-muted').removeClass('text-danger');
- $("#help_name").html('This is a ' + verb + ' channel name.');
+ $("#help_name").html(aStr['name_ok1'] + verb + aStr['name_ok2']);
$("#id_name").addClass('is-validated');
return true;
}
diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl
index f72737d82..6baf06dda 100755
--- a/view/tpl/conv_item.tpl
+++ b/view/tpl/conv_item.tpl
@@ -43,7 +43,7 @@
</div>
{{if $item.lock}}
<div class="wall-item-lock dropdown">
- <i class="fa fa-lock lockview" data-toggle="dropdown" title="{{$item.lock}}" onclick="lockview('item',{{$item.id}});" ></i>&nbsp;
+ <i class="fa fa-lock lockview{{if $item.privacy_warning}} text-danger{{/if}}" data-toggle="dropdown" title="{{$item.lock}}" onclick="lockview('item',{{$item.id}});" ></i>&nbsp;
<div id="panel-{{$item.id}}" class="dropdown-menu"></div>
</div>
{{/if}}
diff --git a/view/tpl/js_strings.tpl b/view/tpl/js_strings.tpl
index 4243c2ea5..01fc3f993 100755
--- a/view/tpl/js_strings.tpl
+++ b/view/tpl/js_strings.tpl
@@ -23,6 +23,18 @@
'linkurl' : "{{$linkurl}}",
'leavethispage' : "{{$leavethispage}}",
'location' : "{{$location}}",
+ 'lovely' : "{{$lovely}}",
+ 'wonderful' : "{{$wonderful}}",
+ 'fantastic' : "{{$fantastic}}",
+ 'great' : "{{$great}}",
+ 'nick_invld1' : "{{$nick_invld1}}",
+ 'nick_invld2' : "{{$nick_invld2}}",
+ 'nick_valid' : "{{$nick_valid}}",
+ 'name_empty' : "{{$name_empty}}",
+ 'name_ok1' : "{{$name_ok1}}",
+ 'name_ok2' : "{{$name_ok2}}",
+
+
't01' : "{{$t01}}",
't02' : "{{$t02}}",