aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2013-06-15 15:45:54 -0700
committerfriendica <info@friendica.com>2013-06-15 15:45:54 -0700
commitee21dfc2456dee1c5e0f22e8ca57a236d5c9a0b3 (patch)
tree88d85c485fa61d6e2966bd203f80f9ca83b4415a
parent87e4f50edab4e32a6191cd1fa5c1ee9f5dba791e (diff)
downloadvolse-hubzilla-ee21dfc2456dee1c5e0f22e8ca57a236d5c9a0b3.tar.gz
volse-hubzilla-ee21dfc2456dee1c5e0f22e8ca57a236d5c9a0b3.tar.bz2
volse-hubzilla-ee21dfc2456dee1c5e0f22e8ca57a236d5c9a0b3.zip
fix "new connection has less permissions than public"
-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;
}