SilverStripe默认内容作者权限

时间:2016-07-27 12:49:42

标签: php silverstripe

管理网站配置的默认值为关闭 安全>群组>内容作者>权限

enter image description here

虽然可以简单地勾选方框并激活它,但我希望默认情况下每个SS安装都启用它。

如何将此默认值设置为

1 个答案:

答案 0 :(得分:1)

这应该按照要求进行,扩展Group并添加requireDefaultRecords函数,这在每个开发构建时调用。

此功能用于查找该权限,如果不存在,则创建它...

class GroupExtension extends DataExtension {

    function requireDefaultRecords() {

        //get the content-authors group
        if ($group = Group::get()->filter('Code','content-authors')->first()) {

            //expected permission record content
            $arrPermissionData = array(
                'Arg'       => 0,
                'Type'      => 1,
                'Code'      => 'EDIT_SITECONFIG',
                'GroupID'   => $group->ID
            );

            //if the permission is not found, then create it
            if (!Permission::get()->filter($arrPermissionData)->first())
                Permission::create($arrPermissionData)->write();
        }
    }

}

与注册扩展程序一样,将此添加到config.yml ...

Group:
  extensions:
    - GroupExtension