SilverStripe硬编码权限设置EDIT_SITECONFIG

时间:2016-10-26 08:00:46

标签: php silverstripe

默认情况下,PermissionCode未授予特定ContentAuthor。这是关于权限代码EDIT_SITECONFIG(允许内容作者查看和编辑“设置”部分)。

此权限可授予rolesSecurity > Groups > Content Authors > Permissions> 管理网站配置

Site config permission

如何在默认情况下强制将此权限授予ContentAuthors

1 个答案:

答案 0 :(得分:3)

我们可以为调用Group的{​​{1}}类添加扩展名来修改此变量。

<强> mysite的/代码/扩展/ CustomGroup.php

requireDefaultRecords

我们在class CustomGroup extends DataExtension { public function requireDefaultRecords() { parent::requireDefaultRecords(); $contentAuthorGroup = Group::get()->filter('Code', 'content-authors')->first(); if ($contentAuthorGroup) { Permission::grant($contentAuthorGroup->ID, 'EDIT_SITECONFIG'); } } } 文件中启用了Group扩展名。

<强> mysite的/ _config / config.yml

config.yml

此解决方案需要注意的一点是,每次调用Group: extensions: - CustomGroup 时,它都会更新EDIT_SITECONFIG权限设置。这意味着如果通过CMS关闭此权限,则会在下次调用dev/build时将其切换回来。

另一种方法是在第一个数据库构建中创建内容作者组。这只会设置dev/build一次,允许它通过CMS覆盖。

EDIT_SITECONFIG