aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/permissions.php16
1 files changed, 12 insertions, 4 deletions
diff --git a/include/permissions.php b/include/permissions.php
index 071a599f8..bf380cf95 100644
--- a/include/permissions.php
+++ b/include/permissions.php
@@ -98,7 +98,7 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
// If they're blocked - they can't read or write
- if(($x) && (($x[0]['abook_flags'] & ABOOK_FLAG_BLOCKED) || ($x[0]['abook_flags'] & ABOOK_FLAG_PENDING))) {
+ if(($x) && ($x[0]['abook_flags'] & ABOOK_FLAG_BLOCKED)) {
$ret[$perm_name] = false;
continue;
}
@@ -164,13 +164,17 @@ function get_all_perms($uid,$observer_xchan,$internal_use = true) {
// If PERMS_CONTACTS or PERMS_SPECIFIC, they need to be in your address book
// $x is a valid address book entry
-
-
if(! $x) {
$ret[$perm_name] = false;
continue;
}
+ // They are in your address book, but haven't been approved
+
+ if($x[0]['abook_flags'] & ABOOK_FLAG_PENDING) {
+ $ret[$perm_name] = false;
+ continue;
+ }
if(($r) && ($r[0][$channel_perm] & PERMS_CONTACTS)) {
@@ -242,7 +246,7 @@ function perm_is_allowed($uid,$observer_xchan,$permission) {
// If they're blocked - they can't read or write
- if(($x) && (($x[0]['abook_flags'] & ABOOK_FLAG_BLOCKED) || ($x[0]['abook_flags'] & ABOOK_FLAG_PENDING)))
+ if(($x) && ($x[0]['abook_flags'] & ABOOK_FLAG_BLOCKED))
return false;
if(($x) && (! $global_perms[$permission][2]) && ($x[0]['abook_flags'] & ABOOK_FLAG_IGNORED))
@@ -287,6 +291,10 @@ function perm_is_allowed($uid,$observer_xchan,$permission) {
return false;
}
+ if($x[0]['abook_flags'] & ABOOK_FLAG_PENDING) {
+ return false;
+ }
+
if($r[0][$channel_perm] & PERMS_CONTACTS) {
return true;
}