【发布时间】:2016-04-14 07:15:26
【问题描述】:
我有数据对象:
class Documents extends DataObject implements PermissionProvider {
private static $db = array(
'DocType' => 'Text',
'ApprovalDate' => 'Date',
'PublicationDate' => 'Date',
'DocNumber' => 'Text',
'DocTitle' => 'Text',
'KeyWords' => 'Text'
);
private static $has_one = array(
'Member' => 'Member'
);
...
static $api_access = true;
public function canEdit($member = false) {
return (Member::currentUserID() == $this->MemberID) || parent::canEdit($member);
}
public function canDelete($member = false) {
return (Member::currentUserID() == $this->MemberID) || parent::canDelete($member);
}
public function canView($member = false) {
return Permission::check('DOCUMENTS_VIEW');
}
public function canCreate($member = false) {
return Permission::check('DOCUMENTS_CREATE');
}
function providePermissions() {
return array(
'DOCUMENTS_VIEW' => 'View Documents ',
'DOCUMENTS_EDIT' => 'Edit Documents ',
'DOCUMENTS_DELETE' => 'Delete Documents ',
'DOCUMENTS_CREATE' => 'Create Documents '
);
}
我创建了组“文档开发人员”并授予它 DOCUMENTS_VIEW、EDIT、DELETE、CREATE 权限。我希望该组的所有用户只能查看所有文档并创建新文档,并且只有所有者(ID == MemberID 的用户)可以编辑和删除他的文档。 当用户尝试编辑或删除他的文档或查看其他文档时,它可以正常工作。但是当他尝试创建新文档(在 CMS 中按“创建”按钮)时,会出现一个弹出窗口“禁止”:(You can see CMS Window here) 请给我任何想法。
【问题讨论】:
-
您在创建权限后是否进行了开发/构建/刷新?禁止似乎是一个不相关的错误,在你得到这个之后点击“F5”或重新加载怎么样?然后您可能会看到一条错误消息,该消息被 ajax api 隐藏。您还可以检查错误日志或网络流量(例如,使用 firebugs 网络选项卡)以获取错误消息。
标签: silverstripe