one more edge case in the public perms - don't match perms = 0 which is private, this and prior checkin are for issue #114

This commit is contained in:
friendica 2013-09-22 22:58:59 -07:00
parent 956d275693
commit a2b20bd58f
3 changed files with 7 additions and 6 deletions

View File

@ -412,7 +412,7 @@ function stream_perms_api_uids($perms_min = PERMS_SITE) {
$ret = array(); $ret = array();
if(local_user()) if(local_user())
$ret[] = local_user(); $ret[] = local_user();
$r = q("select channel_id from channel where channel_r_stream <= %d", $r = q("select channel_id from channel where channel_r_stream > 0 and channel_r_stream <= %d",
intval($perms_min) intval($perms_min)
); );
if($r) if($r)
@ -435,7 +435,8 @@ function stream_perms_xchans($perms_min = PERMS_SITE) {
$ret = array(); $ret = array();
if(local_user()) if(local_user())
$ret[] = get_observer_hash(); $ret[] = get_observer_hash();
$r = q("select channel_hash from channel where channel_r_stream <= %d",
$r = q("select channel_hash from channel where channel_r_stream > 0 and channel_r_stream <= %d",
intval($perms_min) intval($perms_min)
); );
if($r) if($r)

View File

@ -113,18 +113,18 @@ function display_content(&$a, $update = 0, $load = false) {
} }
} }
if($r === null) { if($r === null) {
dbg(1);
$r = q("SELECT * from item $r = q("SELECT * from item
WHERE item_restrict = 0 WHERE item_restrict = 0
and mid = '%s' and mid = '%s'
AND ((( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND ((( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = ''
AND `item`.`deny_gid` = '' AND item_private = 0 ) AND `item`.`deny_gid` = '' AND item_private = 0 )
and owner_xchan in ( " . stream_perms_xchans() . " )) and owner_xchan in ( " . stream_perms_xchans(($observer) ? PERMS_NETWORK : PERMS_PUBLIC) . " ))
$sql_extra ) $sql_extra )
group by mid limit 1", group by mid limit 1",
dbesc($target_item['parent_mid']) dbesc($target_item['parent_mid'])
); );
dbg(0);
} }
} }

View File

@ -208,7 +208,7 @@ function search_content(&$a,$update = 0, $load = false) {
WHERE item_restrict = 0 WHERE item_restrict = 0
AND ((( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = '' AND ((( `item`.`allow_cid` = '' AND `item`.`allow_gid` = '' AND `item`.`deny_cid` = ''
AND `item`.`deny_gid` = '' AND item_private = 0 ) AND `item`.`deny_gid` = '' AND item_private = 0 )
and owner_xchan in ( " . stream_perms_xchans() . " )) and owner_xchan in ( " . stream_perms_xchans(($observer) ? PERMS_NETWORK : PERMS_PUBLIC) . " ))
$pub_sql ) $pub_sql )
$sql_extra $sql_extra
group by mid ORDER BY created DESC $pager_sql" group by mid ORDER BY created DESC $pager_sql"