ability to hide profile and wall from unknown people

This commit is contained in:
Friendika 2011-05-24 16:30:52 -07:00
parent 21769d7390
commit e3d1ef8ef7
10 changed files with 63 additions and 7 deletions

View file

@ -4,9 +4,9 @@ set_time_limit(0);
ini_set('pcre.backtrack_limit', 250000); ini_set('pcre.backtrack_limit', 250000);
define ( 'FRIENDIKA_VERSION', '2.2.989' ); define ( 'FRIENDIKA_VERSION', '2.2.990' );
define ( 'DFRN_PROTOCOL_VERSION', '2.21' ); define ( 'DFRN_PROTOCOL_VERSION', '2.21' );
define ( 'DB_UPDATE_VERSION', 1055 ); define ( 'DB_UPDATE_VERSION', 1056 );
define ( 'EOL', "<br />\r\n" ); define ( 'EOL', "<br />\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' ); define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
@ -2361,6 +2361,10 @@ function profile_sidebar($profile) {
$homepage = ((x($profile,'homepage') == 1) ? '<div class="homepage"><span class="homepage-label">' . t('Homepage:') . ' </span><span class="homepage-url">' . linkify($profile['homepage']) . '</span></div><div class="profile-clear"></div>' : ''); $homepage = ((x($profile,'homepage') == 1) ? '<div class="homepage"><span class="homepage-label">' . t('Homepage:') . ' </span><span class="homepage-url">' . linkify($profile['homepage']) . '</span></div><div class="profile-clear"></div>' : '');
if($profile['hidewall'] && (! local_user()) && (! remote_user())) {
$location = $gender = $marital = $homepage = '';
}
$tpl = get_markup_template('profile_vcard.tpl'); $tpl = get_markup_template('profile_vcard.tpl');
$o .= replace_macros($tpl, array( $o .= replace_macros($tpl, array(

View file

@ -288,6 +288,7 @@ CREATE TABLE IF NOT EXISTS `profile` (
`profile-name` char(255) NOT NULL, `profile-name` char(255) NOT NULL,
`is-default` tinyint(1) NOT NULL DEFAULT '0', `is-default` tinyint(1) NOT NULL DEFAULT '0',
`hide-friends` tinyint(1) NOT NULL DEFAULT '0', `hide-friends` tinyint(1) NOT NULL DEFAULT '0',
`hidewall` tinyint(1) NOT NULL DEFAULT '0',
`name` char(255) NOT NULL, `name` char(255) NOT NULL,
`pdesc` char(255) NOT NULL, `pdesc` char(255) NOT NULL,
`dob` char(32) NOT NULL DEFAULT '0000-00-00', `dob` char(32) NOT NULL DEFAULT '0000-00-00',

View file

@ -128,7 +128,7 @@
#$s = str_replace(array("\n","\r"),array("§n§","§r§"),$s); #$s = str_replace(array("\n","\r"),array("§n§","§r§"),$s);
$s = $this->_build_nodes($s); $s = $this->_build_nodes($s);
$s = preg_replace_callback('/\|\|([0-9]+)\|\|/', array($this, "_replcb_node"), $s); $s = preg_replace_callback('/\|\|([0-9]+)\|\|/', array($this, "_replcb_node"), $s);
$s = str_replace($this->search,$this->replace, (string) $s); $s = str_replace($this->search,$this->replace, $s);
return $s; return $s;
} }

View file

@ -51,11 +51,14 @@ function profile_init(&$a) {
function profile_content(&$a, $update = 0) { function profile_content(&$a, $update = 0) {
if((get_config('system','block_public')) && (! local_user()) && (! remote_user())) { if(get_config('system','block_public') && (! local_user()) && (! remote_user())) {
return login(); return login();
} }
if($a->profile['hidewall'] && (! local_user()) && (! remote_user())) {
notice( t('Access to this profile has been restricted.') . EOL);
return;
}
require_once("include/bbcode.php"); require_once("include/bbcode.php");
require_once('include/security.php'); require_once('include/security.php');

View file

@ -129,6 +129,7 @@ function profiles_post(&$a) {
$work = escape_tags(trim($_POST['work'])); $work = escape_tags(trim($_POST['work']));
$education = escape_tags(trim($_POST['education'])); $education = escape_tags(trim($_POST['education']));
$hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0); $hide_friends = (($_POST['hide-friends'] == 1) ? 1: 0);
$hidewall = (($_POST['hidewall'] == 1) ? 1: 0);
$r = q("UPDATE `profile` $r = q("UPDATE `profile`
@ -160,7 +161,8 @@ function profiles_post(&$a) {
`romance` = '%s', `romance` = '%s',
`work` = '%s', `work` = '%s',
`education` = '%s', `education` = '%s',
`hide-friends` = %d `hide-friends` = %d,
`hidewall` = %d
WHERE `id` = %d AND `uid` = %d LIMIT 1", WHERE `id` = %d AND `uid` = %d LIMIT 1",
dbesc($profile_name), dbesc($profile_name),
dbesc($name), dbesc($name),
@ -191,6 +193,7 @@ function profiles_post(&$a) {
dbesc($work), dbesc($work),
dbesc($education), dbesc($education),
intval($hide_friends), intval($hide_friends),
intval($hidewall),
intval($a->argv[1]), intval($a->argv[1]),
intval($_SESSION['uid']) intval($_SESSION['uid'])
); );
@ -351,13 +354,23 @@ function profiles_content(&$a) {
$opt_tpl = get_markup_template("profile-hide-friends.tpl"); $opt_tpl = get_markup_template("profile-hide-friends.tpl");
$hide_friends = replace_macros($opt_tpl,array( $hide_friends = replace_macros($opt_tpl,array(
'$desc' => t('Hide my contact/friend list from viewers of this profile?'), '$desc' => t('Hide your contact/friend list from viewers of this profile?'),
'$yes_str' => t('Yes'), '$yes_str' => t('Yes'),
'$no_str' => t('No'), '$no_str' => t('No'),
'$yes_selected' => (($r[0]['hide-friends']) ? " checked=\"checked\" " : ""), '$yes_selected' => (($r[0]['hide-friends']) ? " checked=\"checked\" " : ""),
'$no_selected' => (($r[0]['hide-friends'] == 0) ? " checked=\"checked\" " : "") '$no_selected' => (($r[0]['hide-friends'] == 0) ? " checked=\"checked\" " : "")
)); ));
$opt_tpl = get_markup_template("profile-hide-wall.tpl");
$hide_wall = replace_macros($opt_tpl,array(
'$desc' => t('Hide your messages from unknown viewers of this profile?'),
'$yes_str' => t('Yes'),
'$no_str' => t('No'),
'$yes_selected' => (($r[0]['hidewall']) ? " checked=\"checked\" " : ""),
'$no_selected' => (($r[0]['hidewall'] == 0) ? " checked=\"checked\" " : "")
));
$a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl())); $a->page['htmlhead'] .= replace_macros($tpl, array('$baseurl' => $a->get_baseurl()));
$a->page['htmlhead'] .= "<script type=\"text/javascript\" src=\"include/country.js\" ></script>"; $a->page['htmlhead'] .= "<script type=\"text/javascript\" src=\"include/country.js\" ></script>";
@ -413,6 +426,7 @@ function profiles_content(&$a) {
'$pdesc' => $r[0]['pdesc'], '$pdesc' => $r[0]['pdesc'],
'$dob' => dob($r[0]['dob']), '$dob' => dob($r[0]['dob']),
'$hide_friends' => $hide_friends, '$hide_friends' => $hide_friends,
'$hide_wall' => $hide_wall,
'$address' => $r[0]['address'], '$address' => $r[0]['address'],
'$locality' => $r[0]['locality'], '$locality' => $r[0]['locality'],
'$region' => $r[0]['region'], '$region' => $r[0]['region'],

View file

@ -483,3 +483,7 @@ function update_1053() {
function update_1054() { function update_1054() {
q("ALTER TABLE `register` ADD `language` CHAR( 16 ) NOT NULL AFTER `password` "); q("ALTER TABLE `register` ADD `language` CHAR( 16 ) NOT NULL AFTER `password` ");
} }
function update_1055() {
q("ALTER TABLE `profile` ADD `hidewall` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `hide-friends` ");
}

View file

@ -0,0 +1,16 @@
<p id="hide-wall-text">
$desc
</p>
<div id="hide-wall-yes-wrapper">
<label id="hide-wall-yes-label" for="hide-wall-yes">$yes_str</label>
<input type="radio" name="hidewall" id="hide-wall-yes" $yes_selected value="1" />
<div id="hide-wall-break" ></div>
</div>
<div id="hide-wall-no-wrapper">
<label id="hide-wall-no-label" for="hide-wall-no">$no_str</label>
<input type="radio" name="hidewall" id="hide-wall-no" $no_selected value="0" />
<div id="hide-wall-end"></div>
</div>

View file

@ -52,6 +52,8 @@ $dob $age
$hide_friends $hide_friends
$hide_wall
<div class="profile-edit-submit-wrapper" > <div class="profile-edit-submit-wrapper" >
<input type="submit" name="submit" class="profile-edit-submit-button" value="$submit" /> <input type="submit" name="submit" class="profile-edit-submit-button" value="$submit" />
</div> </div>

View file

@ -701,6 +701,8 @@ input#dfrn-url {
#profile-in-dir-no, #profile-in-dir-no,
#profile-in-netdir-yes, #profile-in-netdir-yes,
#profile-in-netdir-no, #profile-in-netdir-no,
#hide-wall-yes,
#hide-wall-no,
#hide-friends-yes, #hide-friends-yes,
#hide-friends-no { #hide-friends-no {
float: left; float: left;
@ -718,6 +720,8 @@ input#dfrn-url {
#profile-in-dir-no-label, #profile-in-dir-no-label,
#profile-in-netdir-yes-label, #profile-in-netdir-yes-label,
#profile-in-netdir-no-label, #profile-in-netdir-no-label,
#hide-wall-yes-label,
#hide-wall-no-label,
#hide-friends-yes-label, #hide-friends-yes-label,
#hide-friends-no-label { #hide-friends-no-label {
margin-left: 125px; margin-left: 125px;
@ -801,6 +805,8 @@ input#dfrn-url {
#profile-in-dir-end, #profile-in-dir-end,
#profile-in-netdir-break, #profile-in-netdir-break,
#profile-in-netdir-end, #profile-in-netdir-end,
#hide-wall-break,
#hide-wall-end,
#hide-friends-break, #hide-friends-break,
#hide-friends-end, #hide-friends-end,
#settings-normal-break, #settings-normal-break,

View file

@ -825,6 +825,8 @@ input#dfrn-url {
#profile-in-dir-no, #profile-in-dir-no,
#profile-in-netdir-yes, #profile-in-netdir-yes,
#profile-in-netdir-no, #profile-in-netdir-no,
#hide-wall-yes,
#hide-wall-no,
#hide-friends-yes, #hide-friends-yes,
#hide-friends-no, #hide-friends-no,
#settings-normal, #settings-normal,
@ -839,6 +841,8 @@ input#dfrn-url {
#profile-in-dir-no-label, #profile-in-dir-no-label,
#profile-in-netdir-yes-label, #profile-in-netdir-yes-label,
#profile-in-netdir-no-label, #profile-in-netdir-no-label,
#hide-wall-yes-label,
#hide-wall-no-label,
#hide-friends-yes-label, #hide-friends-yes-label,
#hide-friends-no-label { #hide-friends-no-label {
margin-left: 125px; margin-left: 125px;
@ -917,6 +921,8 @@ input#dfrn-url {
#profile-in-dir-end, #profile-in-dir-end,
#profile-in-netdir-break, #profile-in-netdir-break,
#profile-in-netdir-end, #profile-in-netdir-end,
#hide-wall-break,
#hide-wall-end,
#hide-friends-break, #hide-friends-break,
#hide-friends-end, #hide-friends-end,
#settings-normal-break, #settings-normal-break,