aboutsummaryrefslogtreecommitdiffstats
path: root/include/group.php
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2012-10-01 18:02:11 -0700
committerfriendica <info@friendica.com>2012-10-01 18:02:11 -0700
commit846a9813b23911ae2a87d87fb6fd9f188ed84dc0 (patch)
treea8a78b379cc8f4e25812c5b2cac603c86b6b1472 /include/group.php
parentd261fe271fdee747244c76f7ba4679b8372a2e8c (diff)
downloadvolse-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.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)