add pending check on group queries

This commit is contained in:
friendica 2012-11-29 23:06:03 -08:00
parent c079133719
commit f7ff2de132
6 changed files with 29 additions and 20 deletions

View File

@ -53,7 +53,7 @@ function new_contact($uid,$url,$channel,$interactive = false) {
// check service class limits // 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($uid),
intval(ABOOK_FLAG_SELF) intval(ABOOK_FLAG_SELF)
); );

View File

@ -159,11 +159,12 @@ function group_get_members($gid) {
if(intval($gid)) { if(intval($gid)) {
$r = q("SELECT abook.*,xchan.*,group_member.* FROM `group_member` $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 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($gid),
intval(local_user()), intval(local_user()),
intval(ABOOK_FLAG_SELF), intval(ABOOK_FLAG_SELF),
intval(ABOOK_FLAG_BLOCKED) intval(ABOOK_FLAG_BLOCKED),
intval(ABOOK_FLAG_PENDING)
); );
if(count($r)) if(count($r))
$ret = $r; $ret = $r;

View File

@ -22,9 +22,10 @@ function collect_recipients($item,&$private) {
} }
else { else {
$recipients = array(); $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($item['uid']),
intval(ABOOK_FLAG_SELF) intval(ABOOK_FLAG_SELF),
intval(ABOOK_FLAG_PENDING)
); );
if($r) { if($r) {
foreach($r as $rr) { foreach($r as $rr) {

View File

@ -248,20 +248,22 @@ function zot_refresh($them,$channel = null) {
$their_perms = $their_perms | intval($global_perms[$k][1]); $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']), dbesc($x['hash']),
intval($channel['channel_id']), intval($channel['channel_id']),
intval(ABOOK_FLAG_SELF) intval(ABOOK_FLAG_SELF),
intval(ABOOK_FLAG_PENDING)
); );
if($r) { if($r) {
$y = q("update abook set abook_their_perms = %d $y = q("update abook set abook_their_perms = %d
where abook_xchan = '%s' and abook_channel = %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), intval($their_perms),
dbesc($x['hash']), dbesc($x['hash']),
intval($channel['channel_id']), intval($channel['channel_id']),
intval(ABOOK_FLAG_SELF) intval(ABOOK_FLAG_SELF),
intval(ABOOK_FLAG_PENDING)
); );
if(! $y) if(! $y)
logger('abook update failed'); logger('abook update failed');
@ -279,7 +281,7 @@ dbg(1);
if($y) if($y)
logger("New introduction received for {$channel['channel_name']}"); logger("New introduction received for {$channel['channel_name']}");
} }
dbg(0);
} }
return true; return true;

View File

@ -219,10 +219,11 @@ EOT;
$cmd = argv(2); $cmd = argv(2);
$orig_record = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook_xchan = xchan_hash $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($contact_id),
intval(local_user()), intval(local_user()),
intval(ABOOK_FLAG_SELF) intval(ABOOK_FLAG_SELF),
intval(ABOOK_FLAG_PENDING)
); );
if(! count($orig_record)) { if(! count($orig_record)) {
@ -562,9 +563,10 @@ EOT;
$sql_extra .= sprintf(" AND xchan_network = '%s' ", dbesc($nets)); $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 $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(local_user()),
intval(ABOOK_FLAG_SELF) intval(ABOOK_FLAG_SELF),
intval(ABOOK_FLAG_PENDING)
); );
if(count($r)) { if(count($r)) {
$a->set_pager_total($r[0]['total']); $a->set_pager_total($r[0]['total']);
@ -572,9 +574,10 @@ EOT;
} }
dbg(1); dbg(1);
$r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash $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(local_user()),
intval(ABOOK_FLAG_SELF), intval(ABOOK_FLAG_SELF),
intval(ABOOK_FLAG_PENDING),
intval($a->pager['start']), intval($a->pager['start']),
intval($a->pager['itemspage']) intval($a->pager['itemspage'])
); );

View File

@ -114,11 +114,12 @@ function group_content(&$a) {
if((argc() > 2) && intval(argv(1)) && argv(2)) { if((argc() > 2) && intval(argv(1)) && argv(2)) {
check_form_security_token_ForbiddenOnErr('group_member_change', 't'); 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)), dbesc(argv(2)),
intval(local_user()), intval(local_user()),
intval(ABOOK_FLAG_SELF), intval(ABOOK_FLAG_SELF),
intval(ABOOK_FLAG_BLOCKED) intval(ABOOK_FLAG_BLOCKED),
intval(ABOOK_FLAG_PENDING)
); );
if(count($r)) if(count($r))
$change = argv(2); $change = argv(2);
@ -203,10 +204,11 @@ function group_content(&$a) {
group_rmv_member(local_user(),$group['name'],$member['xchan_hash']); 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(local_user()),
intval(ABOOK_FLAG_BLOCKED), intval(ABOOK_FLAG_BLOCKED),
intval(ABOOK_FLAG_SELF) intval(ABOOK_FLAG_SELF),
intval(ABOOK_FLAG_PENDING)
); );
if(count($r)) { if(count($r)) {