strict privacy mode (Friendika-Z) - refuse to talk to networks with privacy issues

This commit is contained in:
Friendika 2011-06-06 16:26:11 -07:00
parent ccf4e3eee5
commit c0094aa4f8
5 changed files with 35 additions and 9 deletions

View File

@ -527,8 +527,20 @@ function check_config(&$a) {
$plugins = get_config('system','addon'); $plugins = get_config('system','addon');
$plugins_arr = array(); $plugins_arr = array();
if($plugins) if($plugins) {
$plugins_arr = explode(',',str_replace(' ', '',$plugins)); $plugins_arr = explode(',',str_replace(' ', '',$plugins));
if(get_config('system','strict_privacy')) {
unset($a->config['system']['huburl']);
for($x = 0; $x < count($plugins_arr); $x ++) {
if( $plugins_arr[$x] === 'facebook'
|| $plugins_arr[$x] === 'twitter'
|| $plugins_arr[$x] === 'statusnet') {
unset($plugins_arr[$x]);
}
}
}
}
$a->plugins = $plugins_arr; $a->plugins = $plugins_arr;

View File

@ -27,6 +27,8 @@ function notifier_run($argv, $argc){
$a->set_baseurl(get_config('system','url')); $a->set_baseurl(get_config('system','url'));
$prv = get_config('system','strict_privacy');
logger('notifier: invoked: ' . print_r($argv,true)); logger('notifier: invoked: ' . print_r($argv,true));
$cmd = $argv[1]; $cmd = $argv[1];
@ -329,6 +331,10 @@ function notifier_run($argv, $argc){
} }
break; break;
case 'stat': case 'stat':
if($prv)
break;
if($followup && $contact['notify']) { if($followup && $contact['notify']) {
logger('notifier: slapdelivery: ' . $contact['name']); logger('notifier: slapdelivery: ' . $contact['name']);
$deliver_status = slapper($owner,$contact['notify'],$slap); $deliver_status = slapper($owner,$contact['notify'],$slap);
@ -373,7 +379,7 @@ function notifier_run($argv, $argc){
} }
break; break;
case 'mail': case 'mail':
// WARNING: does not currently convert to RFC2047 header encodings, etc. // WARNING: does not currently convert to RFC2047 header encodings, etc.
$addr = $contact['addr']; $addr = $contact['addr'];
@ -459,7 +465,7 @@ function notifier_run($argv, $argc){
if($slap && count($url_recipients) && $followup && $notify_hub && (! $expire)) { if($slap && count($url_recipients) && $followup && $notify_hub && (! $expire)) {
foreach($url_recipients as $url) { foreach($url_recipients as $url) {
if($url) { if($url && (! $prv)) {
logger('notifier: urldelivery: ' . $url); logger('notifier: urldelivery: ' . $url);
$deliver_status = slapper($owner,$url,$slap); $deliver_status = slapper($owner,$url,$slap);
// TODO: redeliver/queue these items on failure, though there is no contact record // TODO: redeliver/queue these items on failure, though there is no contact record

View File

@ -626,19 +626,21 @@ function dfrn_request_content(&$a) {
else else
$tpl = get_markup_template('auto_request.tpl'); $tpl = get_markup_template('auto_request.tpl');
$prv = get_config('system','strict_privacy');
$o .= replace_macros($tpl,array( $o .= replace_macros($tpl,array(
'$header' => t('Friend/Connection Request'), '$header' => t('Friend/Connection Request'),
'$desc' => t('Examples: jojo@demo.friendika.com, http://demo.friendika.com/profile/jojo, testuser@identi.ca'), '$desc' => t('Examples: jojo@demo.friendika.com, http://demo.friendika.com/profile/jojo') . (($prv) ? ', testuser@identi.ca' : ''),
'$pls_answer' => t('Please answer the following:'), '$pls_answer' => t('Please answer the following:'),
'$does_know' => t('Does $name know you?'), '$does_know' => sprintf( t('Does %s know you?'),$a->profile['name']),
'$yes' => t('Yes'), '$yes' => t('Yes'),
'$no' => t('No'), '$no' => t('No'),
'$add_note' => t('Add a personal note:'), '$add_note' => t('Add a personal note:'),
'$page_desc' => t("Please enter your 'Identity Address' from one of the following supported social networks:"), '$page_desc' => t("Please enter your 'Identity Address' from one of the following supported social networks:"),
'$friendika' => t('Friendika'), '$friendika' => t('Friendika'),
'$statusnet' => t('StatusNet/Federated Social Web'), '$statusnet' => (($prv) ? t('StatusNet/Federated Social Web') : ''),
'$private_net' => t("Private \x28secure\x29 network"), '$private_net' => t("Private \x28secure\x29 network"),
'$public_net' => t("Public \x28insecure\x29 network"), '$public_net' => (($prv) ? t("Public \x28insecure\x29 network") : ''),
'$your_address' => t('Your Identity Address:'), '$your_address' => t('Your Identity Address:'),
'$submit' => t('Submit Request'), '$submit' => t('Submit Request'),
'$cancel' => t('Cancel'), '$cancel' => t('Cancel'),

View File

@ -22,10 +22,8 @@ function follow_post(&$a) {
// NOTREACHED // NOTREACHED
} }
$ret = probe_url($url); $ret = probe_url($url);
if($ret['network'] === NETWORK_DFRN) { if($ret['network'] === NETWORK_DFRN) {
if(strlen($a->path)) if(strlen($a->path))
$myaddr = bin2hex($a->get_baseurl() . '/profile/' . $a->user['nickname']); $myaddr = bin2hex($a->get_baseurl() . '/profile/' . $a->user['nickname']);
@ -36,6 +34,9 @@ function follow_post(&$a) {
// NOTREACHED // NOTREACHED
} }
elseif(get_config('system','strict_privacy')) {
unset($ret['notify']);
}
// do we have enough information? // do we have enough information?

View File

@ -192,6 +192,11 @@ function salmon_post(&$a) {
// NOTREACHED // NOTREACHED
} }
// Check if we're allowed to talk to insecure networks
if(get_config('system','strict_privacy'))
salmon_return(400);
require_once('include/items.php'); require_once('include/items.php');
// Placeholder for hub discovery. We shouldn't find any hubs // Placeholder for hub discovery. We shouldn't find any hubs