mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 06:05:56 +00:00
Merge pull request #1840 from open-sausages/pulls/4.0/view-add-perms-clarification
List "view/edit all" groups in group permission field
This commit is contained in:
commit
29bb49105f
@ -1915,12 +1915,18 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
|
|||||||
*/
|
*/
|
||||||
public function getSettingsFields()
|
public function getSettingsFields()
|
||||||
{
|
{
|
||||||
$groupsMap = array();
|
$mapFn = function ($groups = []) {
|
||||||
foreach (Group::get() as $group) {
|
$map = [];
|
||||||
// Listboxfield values are escaped, use ASCII char instead of »
|
foreach ($groups as $group) {
|
||||||
$groupsMap[$group->ID] = $group->getBreadcrumbs(' > ');
|
// Listboxfield values are escaped, use ASCII char instead of »
|
||||||
}
|
$map[$group->ID] = $group->getBreadcrumbs(' > ');
|
||||||
asort($groupsMap);
|
}
|
||||||
|
asort($map);
|
||||||
|
return $map;
|
||||||
|
};
|
||||||
|
$groupsMap = $mapFn(Group::get());
|
||||||
|
$viewAllGroupsMap = $mapFn(Permission::get_groups_by_permission(['SITETREE_VIEW_ALL', 'ADMIN']));
|
||||||
|
$editAllGroupsMap = $mapFn(Permission::get_groups_by_permission(['SITETREE_EDIT_ALL', 'ADMIN']));
|
||||||
|
|
||||||
$fields = new FieldList(
|
$fields = new FieldList(
|
||||||
$rootTab = new TabSet(
|
$rootTab = new TabSet(
|
||||||
@ -2006,6 +2012,22 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
|
|||||||
unset($editorsOptionsSource[InheritedPermissions::ANYONE]);
|
unset($editorsOptionsSource[InheritedPermissions::ANYONE]);
|
||||||
$editorsOptionsField->setSource($editorsOptionsSource);
|
$editorsOptionsField->setSource($editorsOptionsSource);
|
||||||
|
|
||||||
|
if ($viewAllGroupsMap) {
|
||||||
|
$viewerGroupsField->setDescription(_t(
|
||||||
|
'SilverStripe\\CMS\\Model\\SiteTree.VIEWER_GROUPS_FIELD_DESC',
|
||||||
|
'Groups with global view permissions: {groupList}',
|
||||||
|
['groupList' => implode(', ', array_values($viewAllGroupsMap))]
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($editAllGroupsMap) {
|
||||||
|
$editorGroupsField->setDescription(_t(
|
||||||
|
'SilverStripe\\CMS\\Model\\SiteTree.EDITOR_GROUPS_FIELD_DESC',
|
||||||
|
'Groups with global edit permissions: {groupList}',
|
||||||
|
['groupList' => implode(', ', array_values($editAllGroupsMap))]
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
if (!Permission::check('SITETREE_GRANT_ACCESS')) {
|
if (!Permission::check('SITETREE_GRANT_ACCESS')) {
|
||||||
$fields->makeFieldReadonly($viewersOptionsField);
|
$fields->makeFieldReadonly($viewersOptionsField);
|
||||||
if ($this->CanEditType === InheritedPermissions::ONLY_THESE_USERS) {
|
if ($this->CanEditType === InheritedPermissions::ONLY_THESE_USERS) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user