如何检查用户是否有权使用PHP中的eZ Platform Public API编辑内容?

时间:2017-07-13 13:11:41

标签: ezplatform

eZ Platform是基于Full Stack Symfony的内容管理系统(CMS)。它添加了一个内容存储库和其他允许用户创建内容的功能。这由a sophisticated permissions system控制,允许精细控制。

通常,这些权限通过用户界面公开,以便用户可以执行某些功能。但是,如何在我的自定义代码中,在控制器或Console Commands中实现此目的?

1 个答案:

答案 0 :(得分: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();
}

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