Several merges from branches/2.4

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@111631 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Sam Minnee 2010-10-04 06:04:21 +00:00
parent c12ebeb9fe
commit f8f18f40aa
3 changed files with 39 additions and 3 deletions

View File

@ -161,7 +161,6 @@ JS
$processedFiles[$key][$param] = $value;
}
}
array_shift($processedFiles);
// Load POST data from arrays in to the correct dohickey.
$processedData = array();
@ -178,7 +177,7 @@ JS
}
$processedData = array_reverse($processedData);
if($data['ID'] && $data['ID'] != 'root') $folder = DataObject::get_by_id("Folder", $data['ID']);
if($data['FolderID'] && $data['FolderID'] != '') $folder = DataObject::get_by_id("Folder", $data['FolderID']);
else $folder = singleton('Folder');
foreach($processedFiles as $filePostId => $tmpFile) {

View File

@ -1313,11 +1313,12 @@ JS;
$perms["CMS_ACCESS_LeftAndMain"] = array(
'name' => _t('CMSMain.ACCESSALLINTERFACES', 'Access to all CMS sections'),
'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access'),
'help' => _t('CMSMain.ACCESSALLINTERFACES', 'Overrules more specific access settings.'),
'sort' => -100
);
if (isset($perms['CMS_ACCESS_ModelAdmin'])) unset($perms['CMS_ACCESS_ModelAdmin']);
return $perms;
}

View File

@ -63,6 +63,20 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
)
)
);
$fields->addFieldToTab(
'Root.Roles',
new LiteralField(
'RolesAddEditLink',
sprintf(
'<p class="add-role"><a href="%s">%s</a></p>',
$this->Link('show/root'),
// TODO This should include #Root_Roles to switch directly to the tab,
// but tabstrip.js doesn't display tabs when directly adressed through a URL pragma
_t('Group.RolesAddEditLink', 'Add/edit roles')
)
)
);
}
$form->Actions()->insertBefore(
@ -120,6 +134,28 @@ class SecurityAdmin extends LeftAndMain implements PermissionProvider {
// necessary for tree node selection in LeftAndMain.EditForm.js
new HiddenField('ID', false, 0)
);
// Add roles editing interface
if(Permission::check('APPLY_ROLES')) {
$rolesCTF = new ComplexTableField(
$this,
'Roles',
'PermissionRole'
);
// Necessary to make Permission code checkboxes behave consistently
$rolesCTF->requirementsForPopupCallback = create_function(
'$popup',
'Requirements::javascript(CMS_DIR . "/javascript/MemberTableField.js");'
);
$rolesTab = $fields->findOrMakeTab('Root.Roles', _t('SecurityAdmin.TABROLES', 'Roles'));
$rolesTab->push(new LiteralField(
'RolesDescription',
''
));
$rolesTab->push($rolesCTF);
}
$actions = new FieldSet(
new FormAction('addmember',_t('SecurityAdmin.ADDMEMBER','Add Member'))
);