eZ Platform是一个基于Symfony的全栈内容管理系统。它添加了一个内容存储库和其他允许用户创建内容的功能。这是由允许细粒度控制的a sophisticated permissions system控制的。
通常,这些权限是通过用户界面公开的,因此用户可以执行某些功能,也可以不执行。但是,如何在自定义代码、控制器或Console Commands中实现这一点呢
发布于 2017-07-13 21:11:41
开发人员使用标准服务与存储库进行交互。在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();
}这自然适用于存储库中的任何命令和功能。例如,内容模块具有创建、编辑和删除等功能。
https://stackoverflow.com/questions/45081650
复制相似问题