eZ平台是一个基于Symfony的全栈内容管理系统(CMS(。它添加了内容存储库和其他允许用户创建内容的功能。这是由一个复杂的权限系统控制的,该系统允许细粒度的控制。
通常,这些权限通过用户界面公开,以便用户可以执行或不执行某些功能。但是,如何在自定义代码、控制器或控制台命令中实现此目的?
开发人员使用标准服务与存储库进行交互。在CookBookBundle中有很多很好的例子。捆绑包中的示例未涵盖的一件事是如何检查用户是否有权执行某个功能。
您可以使用存储库中的权限解析程序轻松执行此操作,例如:
$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();
}
这自然适用于存储库中的任何命令和功能。例如,内容模块具有创建、编辑和删除等功能。