From f7ff2de1321ede230555b1c717a70608246afc85 Mon Sep 17 00:00:00 2001 From: friendica Date: Thu, 29 Nov 2012 23:06:03 -0800 Subject: add pending check on group queries --- include/follow.php | 2 +- include/group.php | 5 +++-- include/items.php | 5 +++-- include/zot.php | 14 ++++++++------ mod/connections.php | 13 ++++++++----- mod/group.php | 10 ++++++---- 6 files changed, 29 insertions(+), 20 deletions(-) diff --git a/include/follow.php b/include/follow.php index 686282624..7b9405247 100644 --- a/include/follow.php +++ b/include/follow.php @@ -53,7 +53,7 @@ function new_contact($uid,$url,$channel,$interactive = false) { // check service class limits - $r = q("select count(*) as total from abook where abook_channel = %d and not (abook_flags & %d)", + $r = q("select count(*) as total from abook where abook_channel = %d and not (abook_flags & %d) ", intval($uid), intval(ABOOK_FLAG_SELF) ); diff --git a/include/group.php b/include/group.php index dda432266..1019daa9c 100644 --- a/include/group.php +++ b/include/group.php @@ -159,11 +159,12 @@ function group_get_members($gid) { if(intval($gid)) { $r = q("SELECT abook.*,xchan.*,group_member.* FROM `group_member` LEFT JOIN abook ON abook_xchan = `group_member`.`xchan` left join xchan on xchan_hash = abook_xchan - WHERE `gid` = %d AND `group_member`.`uid` = %d and not ( abook_flags & %d) and not (abook_flags & %d) ORDER BY xchan_name ASC ", + WHERE `gid` = %d AND `group_member`.`uid` = %d and not ( abook_flags & %d ) and not ( abook_flags & %d ) and not ( abook_flags & %d ) ORDER BY xchan_name ASC ", intval($gid), intval(local_user()), intval(ABOOK_FLAG_SELF), - intval(ABOOK_FLAG_BLOCKED) + intval(ABOOK_FLAG_BLOCKED), + intval(ABOOK_FLAG_PENDING) ); if(count($r)) $ret = $r; diff --git a/include/items.php b/include/items.php index a0cc64fc2..493a4e2f2 100755 --- a/include/items.php +++ b/include/items.php @@ -22,9 +22,10 @@ function collect_recipients($item,&$private) { } else { $recipients = array(); - $r = q("select * from abook where abook_channel = %d and not (abook_flags & %d) ", + $r = q("select * from abook where abook_channel = %d and not (abook_flags & %d) and not (abook_flags & %d)", intval($item['uid']), - intval(ABOOK_FLAG_SELF) + intval(ABOOK_FLAG_SELF), + intval(ABOOK_FLAG_PENDING) ); if($r) { foreach($r as $rr) { diff --git a/include/zot.php b/include/zot.php index 88568f09f..d098b1350 100644 --- a/include/zot.php +++ b/include/zot.php @@ -248,20 +248,22 @@ function zot_refresh($them,$channel = null) { $their_perms = $their_perms | intval($global_perms[$k][1]); } } -dbg(1); - $r = q("select * from abook where abook_xchan = '%s' and abook_channel = %d and not (abook_flags & %d) limit 1", + + $r = q("select * from abook where abook_xchan = '%s' and abook_channel = %d and not (abook_flags & %d) and not ( abook_flags & %d) limit 1", dbesc($x['hash']), intval($channel['channel_id']), - intval(ABOOK_FLAG_SELF) + intval(ABOOK_FLAG_SELF), + intval(ABOOK_FLAG_PENDING) ); if($r) { $y = q("update abook set abook_their_perms = %d where abook_xchan = '%s' and abook_channel = %d - and not (abook_flags & %d) limit 1", + and not (abook_flags & %d) and not ( abook_flags & %d) limit 1", intval($their_perms), dbesc($x['hash']), intval($channel['channel_id']), - intval(ABOOK_FLAG_SELF) + intval(ABOOK_FLAG_SELF), + intval(ABOOK_FLAG_PENDING) ); if(! $y) logger('abook update failed'); @@ -279,7 +281,7 @@ dbg(1); if($y) logger("New introduction received for {$channel['channel_name']}"); } -dbg(0); + } return true; diff --git a/mod/connections.php b/mod/connections.php index 6a2076773..e365fe35f 100644 --- a/mod/connections.php +++ b/mod/connections.php @@ -219,10 +219,11 @@ EOT; $cmd = argv(2); $orig_record = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook_xchan = xchan_hash - WHERE abook_id = %d AND abook_channel = %d AND NOT ( abook_flags & %d ) LIMIT 1", + WHERE abook_id = %d AND abook_channel = %d AND NOT ( abook_flags & %d ) and not abook_flags & %d) LIMIT 1", intval($contact_id), intval(local_user()), - intval(ABOOK_FLAG_SELF) + intval(ABOOK_FLAG_SELF), + intval(ABOOK_FLAG_PENDING) ); if(! count($orig_record)) { @@ -562,9 +563,10 @@ EOT; $sql_extra .= sprintf(" AND xchan_network = '%s' ", dbesc($nets)); $r = q("SELECT COUNT(abook.abook_id) AS total FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash - where abook_channel = %d and not (abook_flags & %d) $sql_extra $sql_extra2 ", + where abook_channel = %d and not (abook_flags & %d) and not (abook_flags & %d) $sql_extra $sql_extra2 ", intval(local_user()), - intval(ABOOK_FLAG_SELF) + intval(ABOOK_FLAG_SELF), + intval(ABOOK_FLAG_PENDING) ); if(count($r)) { $a->set_pager_total($r[0]['total']); @@ -572,9 +574,10 @@ EOT; } dbg(1); $r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash - WHERE abook_channel = %d and not (abook_flags & %d) $sql_extra $sql_extra2 ORDER BY xchan_name LIMIT %d , %d ", + WHERE abook_channel = %d and not (abook_flags & %d) and not (abook_flags & %d) $sql_extra $sql_extra2 ORDER BY xchan_name LIMIT %d , %d ", intval(local_user()), intval(ABOOK_FLAG_SELF), + intval(ABOOK_FLAG_PENDING), intval($a->pager['start']), intval($a->pager['itemspage']) ); diff --git a/mod/group.php b/mod/group.php index ae56da525..40f7d756a 100644 --- a/mod/group.php +++ b/mod/group.php @@ -114,11 +114,12 @@ function group_content(&$a) { if((argc() > 2) && intval(argv(1)) && argv(2)) { check_form_security_token_ForbiddenOnErr('group_member_change', 't'); - $r = q("SELECT abook_xchan from abook where abook_xchan = '%s' and abook_channel = %d and not (abook_flags & %d) and not (abook_flags & %d) limit 1", + $r = q("SELECT abook_xchan from abook where abook_xchan = '%s' and abook_channel = %d and not (abook_flags & %d) and not (abook_flags & %d) and not (abook_flags & %d) limit 1", dbesc(argv(2)), intval(local_user()), intval(ABOOK_FLAG_SELF), - intval(ABOOK_FLAG_BLOCKED) + intval(ABOOK_FLAG_BLOCKED), + intval(ABOOK_FLAG_PENDING) ); if(count($r)) $change = argv(2); @@ -203,10 +204,11 @@ function group_content(&$a) { group_rmv_member(local_user(),$group['name'],$member['xchan_hash']); } - $r = q("SELECT abook.*, xchan.* FROM `abook` left join xchan on abook_xchan = xchan_hash WHERE `abook_channel` = %d AND not (abook_flags & %d) and not (abook_flags & %d) order by xchan_name asc", + $r = q("SELECT abook.*, xchan.* FROM `abook` left join xchan on abook_xchan = xchan_hash WHERE `abook_channel` = %d AND not (abook_flags & %d) and not (abook_flags & %d) and not (abook_flags & %d) order by xchan_name asc", intval(local_user()), intval(ABOOK_FLAG_BLOCKED), - intval(ABOOK_FLAG_SELF) + intval(ABOOK_FLAG_SELF), + intval(ABOOK_FLAG_PENDING) ); if(count($r)) { -- cgit v1.2.3