默认情况下,DataObjects 的权限需要“ADMIN”权限。我通常只是向 DataObjects 添加一个非管理员可以编辑的扩展,如下所示:
class CanEditExtension extends DataExtension
{
public function canEdit($member){
return
Permission::check('CMS_ACCESS_CMSMain', 'any', $member)
|| Permission::check('CMS_ACCESS_LeftAndMain', 'any', $member);
}
public function canView($member){
return
Permission::check('CMS_ACCESS_CMSMain', 'any', $member)
|| Permission::check('CMS_ACCESS_LeftAndMain', 'any', $member);
}
public function canCreate($member = null){
return
Permission::check('CMS_ACCESS_CMSMain', 'any', $member)
|| Permission::check('CMS_ACCESS_LeftAndMain', 'any', $member);
}
public function canDelete($member = null){
return
Permission::check('CMS_ACCESS_CMSMain', 'any', $member)
|| Permission::check('CMS_ACCESS_LeftAndMain', 'any', $member);
}
}
然后,通过 YAML 配置应用扩展:
# in mysite/_config/config.yml
MyDataObject:
extensions:
- CanEditExtension
或者您可以直接在您的类中指定扩展名:
class MyDataObject extends DataObject
{
private static $extensions = array('CanEditExtension');
}