在Life ray中自定义站点管理员角色的权限?

时间:2015-03-02 15:18:41

标签: liferay hook liferay-6 portlet

我想自定义站点管理员角色权限,即我需要启用一项功能,用于在相应站点下创建站点管理用户。我怎样才能做到这一点?我需要使用Hook实现它还是需要创建EXT?或任何其他更简单的方法来实现这一目标? 我需要在各自的站点下启用用户创建并为站点管理员分配权限。我不想让超级管理员为用户打包。

2 个答案:

答案 0 :(得分:3)

也许您可以创建一个自定义portlet,将其放在控制面板中,只有填写表单的站点管理员才能创建您直接指定为当前站点成员的用户。

PRO: 我认为你可以完成任务。

CON:

  • 您必须花时间进行开发,只需点击几下即可获得"解决方案。
  • 这不是权限自定义。

参考文献: "Beginning Liferay Development" 它是一个有用的指南,使用所有Liferay最佳实践解释如何开发一个完整的portlet,#34;着名的" KnowledgeBasePortlet。我建议你仔细阅读,但问题的重点是:

  • 设置权限,仅允许网站管理员创建用户
  • 将Portlet添加到控制面板

NB: 正如您将看到的那样(创建实体操作),KnowledgeBasePortlet会创建两个自定义实体,您不需要这样做:您需要的实体已经存在。使用that chapter只是为了了解如何调用添加/编辑/删除实体的方法,您必须通过UserLocalServiceUtil与User实体进行相同的操作。

答案 1 :(得分:3)

我不确定我是否理解你需要什么(对不起,我试着暗示)。

如果您已经拥有不同的网站,并且需要以编程方式创建所有网站管理员用户(一次性),则需要创建一个portlet(并将其部署为控制面板portlet)。 您的portlet应该只有一个接口来调用方法......而您的方法只需要

如果您更喜欢您的portlet可以将此方法暴露给Liferay而不是UI,但使用Liferay cron作业。 您只需要在liferay-portlet.xml中添加一个声明,指向您的代码:watch this simple guide

不同的是,如果您希望每次通过接口创建站点时都自动添加用户,则可以使用挂钩并覆盖DB上的实体创建事件。 网站位于“组”表中,因此您可以向服务事件添加servlet.service.events.post事件处理程序。 在那里,您可以拨打您的代码:read this useful post

我希望它对你有用。

相关问题