From 188dc1fcf8be7476ca912e3e0cd7aa6cef0c9e8c Mon Sep 17 00:00:00 2001
From: Mike Macgirvin <mike@macgirvin.com>
Date: Tue, 21 Sep 2010 19:51:08 -0700
Subject: [PATCH] relationship direction was too confusing to work with.
 instead of "in,out,both" it's now declared by role e.g. "vip,fan,bud".

---
 boot.php               |  5 +----
 include/security.php   |  4 ++--
 mod/contacts.php       | 24 ++++++++++++------------
 mod/dfrn_confirm.php   | 12 ++++++------
 mod/display.php        |  2 +-
 mod/photos.php         |  2 +-
 mod/profile.php        |  2 +-
 view/acl_selectors.php |  2 +-
 8 files changed, 25 insertions(+), 28 deletions(-)

diff --git a/boot.php b/boot.php
index 537c7d73a1..88aa8d0a77 100644
--- a/boot.php
+++ b/boot.php
@@ -11,10 +11,7 @@ define ( 'REGISTER_CLOSED',  0);
 define ( 'REGISTER_APPROVE', 1);
 define ( 'REGISTER_OPEN',    2);
 
-define ( 'DIRECTION_NONE', 0);			// No relationship
-define ( 'DIRECTION_IN',   1);			// VIP e.g. has FAN
-define ( 'DIRECTION_OUT',  2);			// FAN to a VIP
-define ( 'DIRECTION_BOTH', 3);			// Mutual Friends
+// relationship types
 
 define ( 'REL_VIP',        1);
 define ( 'REL_FAN',        2);
diff --git a/include/security.php b/include/security.php
index 29334549b1..630690f9e6 100644
--- a/include/security.php
+++ b/include/security.php
@@ -10,8 +10,8 @@ function can_write_wall(&$a,$owner) {
 		AND `readonly` = 0  AND `rel` IN ( %d , %d ) LIMIT 1",
                 intval($owner),
                 intval($_SESSION['visitor_id']),
-		intval(DIRECTION_OUT),
-		intval(DIRECTION_BOTH)
+		intval(REL_VIP),
+		intval(REL_BUD)
         );
         if(count($r))
                 return true;
diff --git a/mod/contacts.php b/mod/contacts.php
index 45f792d30f..d20d734d65 100644
--- a/mod/contacts.php
+++ b/mod/contacts.php
@@ -151,16 +151,16 @@ function contacts_content(&$a) {
 		$tpl = file_get_contents("view/contact_edit.tpl");
 
 		switch($r[0]['rel']) {
-			case DIRECTION_BOTH:
+			case REL_BUD:
 				$dir_icon = 'images/lrarrow.gif';
 				$alt_text = t('Mutual Friendship');
 				break;
-			case DIRECTION_IN;
+			case REL_VIP;
 				$dir_icon = 'images/larrow.gif';
 				$alt_text = t('is a fan of yours');
 				break;
 	
-			case DIRECTION_OUT;
+			case REL_FAN;
 				$dir_icon = 'images/rarrow.gif';
 				$alt_text = t('you are a fan of');
 				break;
@@ -186,7 +186,7 @@ function contacts_content(&$a) {
 			'$name' => $r[0]['name'],
 			'$dir_icon' => $dir_icon,
 			'$alt_text' => $alt_text,
-			'$url' => (($r[0]['rel'] != DIRECTION_OUT) ? "redir/{$r[0]['id']}" : $r[0]['url'] )
+			'$url' => (($r[0]['rel'] != REL_FAN) ? "redir/{$r[0]['id']}" : $r[0]['url'] )
 
 		));
 
@@ -220,16 +220,16 @@ function contacts_content(&$a) {
 
 
 	switch($sort_type) {
-		case DIRECTION_BOTH :
+		case REL_BUD :
 			$sql_extra2 = " AND `dfrn-id` != '' AND `issued-id` != '' ";
 			break;
-		case DIRECTION_IN :
+		case REL_VIP :
 			$sql_extra2 = " AND `dfrn-id` = '' AND `issued-id` != '' ";
 			break;
-		case DIRECTION_OUT :
+		case REL_FAN :
 			$sql_extra2 = " AND `dfrn-id` != '' AND `issued-id` = '' ";
 			break;
-		case DIRECTION_NONE :
+		case 0 :
 		default:
 			$sql_extra2 = '';
 			break;
@@ -256,15 +256,15 @@ function contacts_content(&$a) {
 				continue;
 
 			switch($rr['rel']) {
-				case DIRECTION_BOTH:
+				case REL_BUD:
 					$dir_icon = 'images/lrarrow.gif';
 					$alt_text = t('Mutual Friendship');
 					break;
-				case  DIRECTION_IN;
+				case  REL_VIP;
 					$dir_icon = 'images/larrow.gif';
 					$alt_text = t('is a fan of yours');
 					break;
-				case DIRECTION_OUT;
+				case REL_FAN;
 					$dir_icon = 'images/rarrow.gif';
 					$alt_text = t('you are a fan of');
 					break;
@@ -280,7 +280,7 @@ function contacts_content(&$a) {
 				'$dir_icon' => $dir_icon,
 				'$thumb' => $rr['thumb'], 
 				'$name' => $rr['name'],
-				'$url' => (($rr['rel'] != DIRECTION_OUT) ? "redir/{$rr['id']}" : $rr['url'] )
+				'$url' => (($rr['rel'] != REL_FAN) ? "redir/{$rr['id']}" : $rr['url'] )
 			));
 		}
 		$o .= '<div id="contact-edit-end"></div>';
diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php
index f1a7446894..3a534fb6f2 100644
--- a/mod/dfrn_confirm.php
+++ b/mod/dfrn_confirm.php
@@ -127,9 +127,9 @@ function dfrn_confirm_post(&$a) {
 				$thumb = $a->get_baseurl() . '/images/default-profile-sm.jpg';
 			}
 
-			$new_relation = DIRECTION_OUT;
-			if(($relation == DIRECTION_IN) || ($duplex))
-				$new_relation = DIRECTION_BOTH;
+			$new_relation = REL_FAN;
+			if(($relation == REL_VIP) || ($duplex))
+				$new_relation = REL_BUD;
 
 			$r = q("UPDATE `contact` SET 
 				`photo` = '%s', 
@@ -362,9 +362,9 @@ function dfrn_confirm_post(&$a) {
 			$thumb = $a->get_baseurl() . '/images/default-profile-sm.jpg';
 		}
 
-		$new_relation = DIRECTION_IN;
-		if(($relation == DIRECTION_OUT) || ($duplex))
-			$new_relation = DIRECTION_BOTH;
+		$new_relation = REL_VIP;
+		if(($relation == REL_FAN) || ($duplex))
+			$new_relation = REL_BUD;
 
 		$r = q("UPDATE `contact` SET `photo` = '%s', 
 			`thumb` = '%s', 
diff --git a/mod/display.php b/mod/display.php
index 6149c3d5b5..ae26864a32 100644
--- a/mod/display.php
+++ b/mod/display.php
@@ -189,7 +189,7 @@ function display_content(&$a) {
 					$template = $wallwall;
 					$commentww = 'ww';
 					// If it is our contact, use a friendly redirect link
-					if(($item['owner-link'] == $item['url']) && ($item['rel'] == DIRECTION_IN || $item['rel'] == DIRECTION_BOTH))
+					if(($item['owner-link'] == $item['url']) && ($item['rel'] == REL_VIP || $item['rel'] == REL_BUD))
 						$owner_url = $redirect_url;
 						$owner_url = $redirect_url;
 
diff --git a/mod/photos.php b/mod/photos.php
index fa089c4356..04dc23e37b 100644
--- a/mod/photos.php
+++ b/mod/photos.php
@@ -696,7 +696,7 @@ function photos_content(&$a) {
 					$profile_url = $item['url'];
 
 					if(local_user() && ($item['contact-uid'] == get_uid()) 
-						&& ($item['rel'] == DIRECTION_IN || $item['rel'] == DIRECTION_BOTH) && (! $item['self'] ))
+						&& ($item['rel'] == REL_VIP || $item['rel'] == REL_BUD) && (! $item['self'] ))
 						$profile_url = $redirect_url;
  
 					$profile_name = ((strlen($item['author-name'])) ? $item['author-name'] : $item['name']);
diff --git a/mod/profile.php b/mod/profile.php
index b155acf80f..dab4ee6f29 100644
--- a/mod/profile.php
+++ b/mod/profile.php
@@ -326,7 +326,7 @@ function profile_content(&$a, $update = 0) {
 			// I can go directly to their profile as an authenticated guest.
 
 			if(local_user() && ($item['contact-uid'] == $_SESSION['uid']) 
-				&& ($item['rel'] == DIRECTION_IN || $item['rel'] == DIRECTION_BOTH) && (! $item['self'] ))
+				&& ($item['rel'] == REL_VIP || $item['rel'] == REL_BUD) && (! $item['self'] ))
 				$profile_url = $redirect_url;
 	
 
diff --git a/view/acl_selectors.php b/view/acl_selectors.php
index 0366ab2a17..388b75ebb4 100644
--- a/view/acl_selectors.php
+++ b/view/acl_selectors.php
@@ -38,7 +38,7 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p
 	// to one recipient. By default our selector allows multiple selects amongst all contacts.
 
 	if($privmail) {
-		$sql_extra = sprintf(" AND `rel` = %d ", intval(DIRECTION_BOTH));
+		$sql_extra = sprintf(" AND `rel` = %d ", intval(REL_BUD));
 		$o .= "<select name=\"$selname\" id=\"$selclass\" class=\"$selclass\" size=\"$size\" >\r\n";
 	}
 	else {
-- 
2.39.5