Merge pull request #496 from fermionic/deleted-group-stays-in-default-permissions
remove groups from default permissions when removed; bug in group_add_member
This commit is contained in:
commit
35905ebf1c
1 changed files with 33 additions and 2 deletions
|
@ -40,7 +40,7 @@ function group_add($uid,$name) {
|
||||||
function group_rmv($uid,$name) {
|
function group_rmv($uid,$name) {
|
||||||
$ret = false;
|
$ret = false;
|
||||||
if(x($uid) && x($name)) {
|
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),
|
intval($uid),
|
||||||
dbesc($name)
|
dbesc($name)
|
||||||
);
|
);
|
||||||
|
@ -49,6 +49,37 @@ function group_rmv($uid,$name) {
|
||||||
if(! $group_id)
|
if(! $group_id)
|
||||||
return false;
|
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
|
// remove all members
|
||||||
$r = q("DELETE FROM `group_member` WHERE `uid` = %d AND `gid` = %d ",
|
$r = q("DELETE FROM `group_member` WHERE `uid` = %d AND `gid` = %d ",
|
||||||
intval($uid),
|
intval($uid),
|
||||||
|
@ -103,7 +134,7 @@ function group_add_member($uid,$name,$member,$gid = 0) {
|
||||||
if((! $gid) || (! $uid) || (! $member))
|
if((! $gid) || (! $uid) || (! $member))
|
||||||
return false;
|
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($uid),
|
||||||
intval($gid),
|
intval($gid),
|
||||||
intval($member)
|
intval($member)
|
||||||
|
|
Loading…
Reference in a new issue