From 88d5843cab45a555daed2b9befb9cf73161d5078 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Thu, 15 Oct 2009 22:28:11 +0000 Subject: [PATCH] FEATURE: Add a simple interface for administrating permission roles. (from r85297) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@89189 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- security/Group.php | 12 ++++++++++++ security/PermissionRole.php | 28 +++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/security/Group.php b/security/Group.php index 845254e49..de0e3c672 100644 --- a/security/Group.php +++ b/security/Group.php @@ -81,6 +81,18 @@ class Group extends DataObject { $this->ID ) ), + + new Tab(_t('SecurityAdmin.ROLES', 'Roles'), + new LiteralField( + "", + "

" . + _t('SecurityAdmin.ROLESDESCRIPTION', + "This section allows you to add roles to this group. Roles are logical groupings of permissions, which can be editied in the Roles tab" + ) . + "

" + ), + new CheckboxSetField('Roles', 'Roles', DataObject::get('PermissionRole')) + ), new Tab(_t('Security.IPADDRESSES', 'IP Addresses'), new LiteralField("", _t('SecurityAdmin.IPADDRESSESHELP',"

You can restrict this group to a particular diff --git a/security/PermissionRole.php b/security/PermissionRole.php index c6e41196c..e62d2f730 100644 --- a/security/PermissionRole.php +++ b/security/PermissionRole.php @@ -18,4 +18,30 @@ class PermissionRole extends DataObject { static $belongs_many_many = array( "Groups" => "Group", ); -} \ No newline at end of file + + static $default_sort = 'Title'; + + function getCMSFields() { + $fields = parent::getCMSFields(); + + $fields->removeFieldFromTab('Root', 'Codes'); + $fields->removeFieldFromTab('Root', 'Groups'); + + $fields->addFieldToTab('Root.Main', new TableField( + "Codes", + "PermissionRoleCode", + array( + "Code" => _t('SecurityAdmin.CODE', 'Code'), + "Arg" => _t('SecurityAdmin.OPTIONALID', 'Optional ID'), + ), + array( + "Code" => "PermissionDropdownField", + "Arg" => "TextField", + ), + "RoleID", + $this->ID + )); + + return $fields; + } +}