From c735582eadc05d566057d00c685ec60c6e1164d9 Mon Sep 17 00:00:00 2001
From: friendica <info@friendica.com>
Date: Thu, 29 Dec 2011 00:23:05 -0800
Subject: [PATCH] hide contacts on approval

---
 boot.php              |  2 +-
 mod/dfrn_confirm.php  | 13 ++++++++++---
 mod/notifications.php |  2 ++
 view/intros.tpl       |  1 +
 view/suggestions.tpl  |  1 +
 5 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/boot.php b/boot.php
index bcc858fa18..bbf132f30d 100644
--- a/boot.php
+++ b/boot.php
@@ -9,7 +9,7 @@ require_once('include/nav.php');
 require_once('include/cache.php');
 
 define ( 'FRIENDICA_PLATFORM',     'Friendica');
-define ( 'FRIENDICA_VERSION',      '2.3.1208' );
+define ( 'FRIENDICA_VERSION',      '2.3.1209' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.22'    );
 define ( 'DB_UPDATE_VERSION',      1112      );
 
diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php
index ce6f4f95f7..1b0985cefe 100644
--- a/mod/dfrn_confirm.php
+++ b/mod/dfrn_confirm.php
@@ -71,12 +71,14 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
 			$dfrn_id   = $handsfree['dfrn_id'];
 			$intro_id  = $handsfree['intro_id'];
 			$duplex    = $handsfree['duplex'];
+			$hidden    = ((array_key_exists('hidden',$handsfree)) ? intval($handsfree['hidden']) : 0 );
 		}
 		else {
 			$dfrn_id  = ((x($_POST,'dfrn_id'))    ? notags(trim($_POST['dfrn_id'])) : "");
 			$intro_id = ((x($_POST,'intro_id'))   ? intval($_POST['intro_id'])      : 0 );
 			$duplex   = ((x($_POST,'duplex'))     ? intval($_POST['duplex'])        : 0 );
 			$cid      = ((x($_POST,'contact_id')) ? intval($_POST['contact_id'])    : 0 );
+			$hidden   = ((x($_POST,'hidden'))     ? intval($_POST['hidden'])        : 0 );
 		}
 
 		/**
@@ -122,7 +124,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
 		$site_pubkey  = $contact['site-pubkey'];
 		$dfrn_confirm = $contact['confirm'];
 		$aes_allow    = $contact['aes_allow'];
-
+		
 		$network = ((strlen($contact['issued-id'])) ? NETWORK_DFRN : NETWORK_OSTATUS);
 
 		if($contact['network'])
@@ -316,7 +318,8 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
 			if(($relation == CONTACT_IS_SHARING) && ($duplex))
 				$duplex = 0;
 
-			$r = q("UPDATE `contact` SET `photo` = '%s', 
+			$r = q("UPDATE `contact` SET 
+				`photo` = '%s', 
 				`thumb` = '%s',
 				`micro` = '%s', 
 				`rel` = %d, 
@@ -326,6 +329,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
 				`blocked` = 0, 
 				`pending` = 0,
 				`duplex` = %d,
+				`hidden` = %d,
 				`network` = 'dfrn' WHERE `id` = %d LIMIT 1
 			",
 				dbesc($photos[0]),
@@ -336,6 +340,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
 				dbesc(datetime_convert()),
 				dbesc(datetime_convert()),
 				intval($duplex),
+				intval($hidden),
 				intval($contact_id)
 			);
 		}
@@ -387,6 +392,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
 				`pending` = 0,
 				`network` = '%s',
 				`writable` = %d,
+				`hidden` = %d,
 				`rel` = %d
 				WHERE `id` = %d LIMIT 1
 			",
@@ -400,6 +406,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
 				dbesc($poll),
 				dbesc($network),
 				intval($writable),
+				intval($hidden),
 				intval($new_relation),
 				intval($contact_id)
 			);			
@@ -423,7 +430,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
 		$r = q("SELECT `hide-friends` FROM `profile` WHERE `uid` = %d AND `is-default` = 1 LIMIT 1",
 			intval($uid)
 		);
-		if((count($r)) && ($r[0]['hide-friends'] == 0) && (is_array($contact)) &&  isset($new_relation) && ($new_relation == CONTACT_IS_FRIEND)) {
+		if((count($r)) && (! $hidden) && ($r[0]['hide-friends'] == 0) && (is_array($contact)) &&  isset($new_relation) && ($new_relation == CONTACT_IS_FRIEND)) {
 
 			if($r[0]['network'] === NETWORK_DIASPORA) {
 				require_once('include/diaspora.php');
diff --git a/mod/notifications.php b/mod/notifications.php
index 5733e6e57e..910b84e322 100644
--- a/mod/notifications.php
+++ b/mod/notifications.php
@@ -141,6 +141,7 @@ function notifications_content(&$a) {
 						'$photo' => ((x($rr,'fphoto')) ? $rr['fphoto'] : "images/default-profile.jpg"),
 						'$fullname' => $rr['fname'],
 						'$url' => $rr['furl'],
+						'$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''),
 						'$knowyou' => $knowyou,
 						'$approve' => t('Approve'),
 						'$note' => $rr['note'],
@@ -185,6 +186,7 @@ function notifications_content(&$a) {
 					'$contact_id' => $rr['contact-id'],
 					'$photo' => ((x($rr,'photo')) ? $rr['photo'] : "images/default-profile.jpg"),
 					'$fullname' => $rr['name'],
+					'$hidden' => array('hidden', t('Hide this contact from others'), ($rr['hidden'] == 1), ''),
 					'$url' => $rr['url'],
 					'$knowyou' => $knowyou,
 					'$approve' => t('Approve'),
diff --git a/view/intros.tpl b/view/intros.tpl
index d52c3a7aac..d02fd57e6d 100644
--- a/view/intros.tpl
+++ b/view/intros.tpl
@@ -14,6 +14,7 @@
 <div class="intro-form-end"></div>
 
 <form class="intro-approve-form" action="dfrn_confirm" method="post">
+{{inc field_checkbox.tpl with $field=$hidden }}{{endinc}}
 <input type="hidden" name="dfrn_id" value="$dfrn_id" >
 <input type="hidden" name="intro_id" value="$intro_id" >
 <input type="hidden" name="contact_id" value="$contact_id" >
diff --git a/view/suggestions.tpl b/view/suggestions.tpl
index dae5518494..656336496c 100644
--- a/view/suggestions.tpl
+++ b/view/suggestions.tpl
@@ -14,6 +14,7 @@
 <div class="intro-form-end"></div>
 
 <form class="intro-approve-form" action="$request" method="get">
+{{inc field_checkbox.tpl with $field=$hidden }}{{endinc}}
 <input class="intro-submit-approve" type="submit" name="submit" value="$approve" />
 </form>
 </div>
-- 
2.39.5