aboutsummaryrefslogtreecommitdiffstats
path: root/include/group.php
diff options
context:
space:
mode:
Diffstat (limited to 'include/group.php')
-rw-r--r--include/group.php35
1 files changed, 33 insertions, 2 deletions
diff --git a/include/group.php b/include/group.php
index 8aaeb513f..0df3a7b15 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)