MINOR when you delete a user from a group, they are also removed from any sub groups. (from r87119) (from r98158)

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@102754 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Ingo Schommer 2010-04-14 01:49:29 +00:00
parent c1aa73b7cc
commit ca7d87078f
2 changed files with 19 additions and 0 deletions

View File

@ -622,6 +622,15 @@ class LeftAndMain extends Controller {
$statusUpdates['modified'][$node->ID] = array(
'TreeTitle'=>$node->TreeTitle
);
// Update all dependent pages
if($virtualPages = DataObject::get("VirtualPage", "CopyContentFromID = $node->ID")) {
foreach($virtualPages as $virtualPage) {
$statusUpdates['modified'][$virtualPage->ID] = array(
'TreeTitle' => $virtualPage->TreeTitle()
);
}
}
$this->response->addHeader(
'X-Status',

View File

@ -483,12 +483,22 @@ class MemberTableField_ItemRequest extends ComplexTableField_ItemRequest {
if($this->ctf->Can('delete') !== true) {
return false;
}
$groupID = $this->ctf->sourceID();
$group = DataObject::get_by_id('Group', $groupID);
// if a group limitation is set on the table, remove relation.
// otherwise remove the record from the database
if($this->ctf->getGroup()) {
$groupID = $this->ctf->sourceID();
// Remove from direct group relationship
$this->dataObj()->Groups()->remove($groupID);
// Remove from all child groups as well
foreach($group->getAllChildren() as $subGroup) {
$this->dataObj()->Groups()->remove($subGroup);
}
} else {
$this->dataObj()->delete();
}