X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fgroup.php;h=aa226688ae5242dae6220b0a00062acef44911ce;hb=f663676cca64639202a76b599a1932c9de45f6fa;hp=854ac06a9ad53165f51bae8eb6a918b232811f53;hpb=12474e3c2eb21e4b5f9f6cd4b9d223f1f39bfe89;p=friendica.git diff --git a/include/group.php b/include/group.php index 854ac06a9a..aa226688ae 100644 --- a/include/group.php +++ b/include/group.php @@ -40,7 +40,7 @@ function group_add($uid,$name) { function group_rmv($uid,$name) { $ret = false; if(x($uid) && x($name)) { - $r = q("SELECT * FROM `group` WHERE `uid` = %d AND `name` = '%s' LIMIT 1", + $r = q("SELECT id FROM `group` WHERE `uid` = %d AND `name` = '%s' LIMIT 1", intval($uid), dbesc($name) ); @@ -49,6 +49,37 @@ function group_rmv($uid,$name) { if(! $group_id) return false; + // remove group from default posting lists + $r = q("SELECT def_gid, allow_gid, deny_gid FROM user WHERE uid = %d LIMIT 1", + intval($uid) + ); + if($r) { + $user_info = $r[0]; + $change = false; + + if($user_info['def_gid'] == $group_id) { + $user_info['def_gid'] = 0; + $change = true; + } + if(strpos($user_info['allow_gid'], '<' . $group_id . '>') !== false) { + $user_info['allow_gid'] = str_replace('<' . $group_id . '>', '', $user_info['allow_gid']); + $change = true; + } + if(strpos($user_info['deny_gid'], '<' . $group_id . '>') !== false) { + $user_info['deny_gid'] = str_replace('<' . $group_id . '>', '', $user_info['deny_gid']); + $change = true; + } + + if($change) { + q("UPDATE user SET def_gid = %d, allow_gid = '%s', deny_gid = '%s' WHERE uid = %d", + intval($user_info['def_gid']), + dbesc($user_info['allow_gid']), + dbesc($user_info['deny_gid']), + intval($uid) + ); + } + } + // remove all members $r = q("DELETE FROM `group_member` WHERE `uid` = %d AND `gid` = %d ", intval($uid), @@ -103,7 +134,7 @@ function group_add_member($uid,$name,$member,$gid = 0) { if((! $gid) || (! $uid) || (! $member)) return false; - $r = q("SELECT * FROM `group_member` WHERE `uid` = %d AND `id` = %d AND `contact-id` = %d LIMIT 1", + $r = q("SELECT * FROM `group_member` WHERE `uid` = %d AND `gid` = %d AND `contact-id` = %d LIMIT 1", intval($uid), intval($gid), intval($member) @@ -248,7 +279,7 @@ function group_side($every="contacts",$each="group",$edit = false, $group_id = 0 return $o; } -function expand_groups($a) { +function expand_groups($a,$check_dead = false) { if(! (is_array($a) && count($a))) return array(); $groups = implode(',', $a); @@ -258,6 +289,10 @@ function expand_groups($a) { if(count($r)) foreach($r as $rr) $ret[] = $rr['contact-id']; + if($check_dead) { + require_once('include/acl_selectors.php'); + $ret = prune_deadguys($ret); + } return $ret; }