diff options
author | friendica <info@friendica.com> | 2012-10-01 18:02:11 -0700 |
---|---|---|
committer | friendica <info@friendica.com> | 2012-10-01 18:02:11 -0700 |
commit | 846a9813b23911ae2a87d87fb6fd9f188ed84dc0 (patch) | |
tree | a8a78b379cc8f4e25812c5b2cac603c86b6b1472 /include/group.php | |
parent | d261fe271fdee747244c76f7ba4679b8372a2e8c (diff) | |
download | volse-hubzilla-846a9813b23911ae2a87d87fb6fd9f188ed84dc0.tar.gz volse-hubzilla-846a9813b23911ae2a87d87fb6fd9f188ed84dc0.tar.bz2 volse-hubzilla-846a9813b23911ae2a87d87fb6fd9f188ed84dc0.zip |
here's where the heavy lifting begins - everything is likely to be broken for quite some time as we add location and db independence to items and conversations and work through the rest of the permissions and how to federate the buggers.
Diffstat (limited to 'include/group.php')
-rw-r--r-- | include/group.php | 35 |
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) |