bug #157 - allow deleted group to be revived, but warn of side effects

This commit is contained in:
Friendika 2011-09-18 06:20:18 -07:00
parent da05ef2ae4
commit 5899c9f406

View File

@ -6,8 +6,26 @@ function group_add($uid,$name) {
$ret = false; $ret = false;
if(x($uid) && x($name)) { if(x($uid) && x($name)) {
$r = group_byname($uid,$name); // check for dups $r = group_byname($uid,$name); // check for dups
if($r !== false) if($r !== false) {
// This could be a problem.
// Let's assume we've just created a group which we once deleted
// all the old members are gone, but the group remains so we don't break any security
// access lists. What we're doing here is reviving the dead group, but old content which
// was restricted to this group may now be seen by the new group members.
$z = q("SELECT * FROM `group` WHERE `id` = %d LIMIT 1",
intval($r)
);
if(count($z) && $z[0]['deleted']) {
$r = q("UPDATE `group` SET `deleted` = 0 WHERE `uid` = %d AND `name` = '%s' LIMIT 1",
intval($uid),
dbesc($name)
);
notice( t('A deleted group with this name was revived. Existing item permissions <strong>may</strong> apply to this group and any future members. If this is not what you intended, please create another group with a different name.') . EOL);
}
return true; return true;
}
$r = q("INSERT INTO `group` ( `uid`, `name` ) $r = q("INSERT INTO `group` ( `uid`, `name` )
VALUES( %d, '%s' ) ", VALUES( %d, '%s' ) ",
intval($uid), intval($uid),