【问题标题】:SilverStripe default content author permissionsSilverStripe 默认内容作者权限
【发布时间】:2016-07-27 12:49:42
【问题描述】:

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

虽然可以简单地选中该框并激活它,但我宁愿在每次安装 SS 时都默认启用它。

如何将其默认值设置为on

【问题讨论】:

  • 顺便说一句,您是否有机会在这些问题上标记 PHP,因为这是 Silverstripe 的首选语言?
  • 当然,添加。

标签: php silverstripe


【解决方案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

【讨论】:

  • 干杯巴里,你能再跑一遍代码吗?似乎有些问题。我认为“内容作者”应该放在括号中,arrPermissionData 会引发 SS 错误
  • 那里缺少报价是的,对不起
  • 在 dev/build?flush 它返回:Use of undefined constant arrPermissionData - assumed 'arrPermissionData'
  • arrPermissionData 放入括号后返回:[Warning] Invalid argument supplied for foreach() Line 381 in ..../public_html/framework/model/DataList.php
  • 丢失的“$”现在也已修复
猜你喜欢
  • 2013-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-05
  • 1970-01-01
  • 1970-01-01
  • 2012-02-24
相关资源
最近更新 更多