From b38c0d094115f0aaebfc2833cf61e391e301ffc3 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Wed, 9 Apr 2008 11:34:10 +0000 Subject: [PATCH] Merged revisions 51659 via svnmerge from svn://svn.silverstripe.com/silverstripe/modules/sapphire/branches/2.2.0-mesq ........ r51659 | ischommer | 2008-03-26 15:43:01 +1300 (Wed, 26 Mar 2008) | 1 line ENHANCEMENT Moved Group field generation from SecurityAdmin->getEditForm() to Group->getCMSFields() ........ git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@52414 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- security/Group.php | 59 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/security/Group.php b/security/Group.php index d8db38588..77dde76fc 100644 --- a/security/Group.php +++ b/security/Group.php @@ -34,6 +34,65 @@ class Group extends DataObject { "Hierarchy", ); + /** + * Caution: Only call on instances, not through a singleton. + * + * @return FieldSet + */ + public function getCMSFields() { + $fields = new FieldSet( + new TabSet("Root", + new Tab(_t('SecurityAdmin.MEMBERS', 'Members'), + new TextField("Title", _t('SecurityAdmin.GROUPNAME', 'Group name')), + $memberList = new MemberTableField( + $this, + "Members", + $record, + null, + false + ) + ), + + new Tab(_t('SecurityAdmin.PERMISSIONS', 'Permissions'), + new LiteralField( + "", + "

" . + _t('SecurityAdmin.ADVANCEDONLY', + "This section is for advanced users only. + See this page + for more information." + ) . + "

" + ), + new TableField( + "Permissions", + "Permission", + array( + "Code" => _t('SecurityAdmin.CODE', 'Code'), + "Arg" => _t('SecurityAdmin.OPTIONALID', 'Optional ID'), + ), + array( + "Code" => "PermissionDropdownField", + "Arg" => "TextField", + ), + "GroupID", $id + ) + ) + ) + ); + + if(!Permission::check('EDIT_PERMISSIONS')) $fields->removeFieldFromTab('Root', 'Permissions'); + + $memberList->setController($this); + $memberList->setPermissions(array('show', 'edit', 'delete', 'export', 'add')); + $memberList->setParentClass('Group'); + $memberList->setPopupCaption(_t('SecurityAdmin.VIEWUSER', 'View User')); + + $fields->push($idField = new HiddenField("ID")); + + return $fields; + } + static function getAdminGroups() { return DataObject::get('Group',"CanCMSAdmin=1"); }