0

eZ 平台是一个基于 Symfony 的全栈内容管理系统 (CMS)。它添加了一个内容存储库和其他允许用户创建内容的功能。这是由允许细粒度控制的复杂权限系统控制的。

通常,这些权限通过用户界面公开,以便用户可以执行某些功能或不执行某些功能。但是如何在我的自定义代码、控制器或控制台命令中实现这一点?

4

1 回答 1

2

开发人员使用标准服务与存储库进行交互。CookBookBundle中有很多很好的例子。捆绑包中的示例未涵盖的一件事是如何检查用户是否有权执行某个功能。

您可以使用存储库中的PermissionResolver轻松完成此操作,例如:

$content = $contentService->loadContent(52);
$canEdit = $permissionResolver->canUser('content','edit',$content);

if($canEdit){
   echo "Logged in user can edit object " . $content->getName();
} else {
   echo "Logged in user can't edit object " . $content->getName();
}

这自然适用于存储库中的任何命令和功能。例如,内容模块具有创建、编辑和删除等功能。

于 2017-07-13T13:11:41.263 回答