自定义 Life ray 中站点管理员角色的权限?
Customize permissions for Site Administrator role in Life ray?
我想自定义站点管理员角色权限,即,我需要启用一项功能来在各个站点下创建用于站点管理的用户。我怎样才能做到这一点?我需要用 Hook 实现它还是需要创建 EXT?或者任何其他更简单的方法来实现这一目标?
我需要在各自站点下启用用户创建并为站点管理员分配权限。我不想通过超级管理员创建用户。
也许您可以创建一个自定义 portlet,将其放在控制面板中,只有站点管理员在其中填写表格,才能创建您直接指定为当前站点成员的用户。
专业版:
我认为你可以完成你的任务。
反对意见:
- 你要花时间去开发,这不是"solution in a few clicks"。
- 这不是权限自定义。
参考资料:
"Beginning Liferay Development"
这是一个有用的指南,解释了如何使用所有 Liferay 最佳实践开发一个完整的 portlet "famous" KnowledgeBasePortlet。我建议你全部阅读,但你的问题的重点是:
- 设置权限,只允许站点管理员创建用户
- 正在将 Portlet 添加到控制面板
注意:
正如您将看到的(创建实体操作),KnowledgeBasePortlet 创建了两个自定义实体,您不需要这样做:您需要的实体已经存在。使用 that chapter 只是为了了解如何将方法调用到 add/edit/delete 实体,您将必须通过 UserLocalServiceUtil 对用户实体执行相同的操作。
我不确定我是否理解您的需求(抱歉,我试图假设)。
如果您已经有不同的网站并且需要以编程方式创建所有站点管理员用户(一次性),则需要创建一个 portlet(并将其部署为控制面板 portlet)。
您的 portlet 应该只有一个接口来调用方法...并且您的方法只需要
- 获取您需要的所有站点(其中管理员用户尚不存在)
- 创建用户(使用 UserLocalServiceUtil)
- 通过RoleLocalServiceUtil and UserGroupRoleLocalServiceUtil为用户分配必要的角色
可以在此处找到一个很好的代码示例:Liferay Forum: How to Programmatically Add Liferay Users in Java
如果您更喜欢您的 portlet 可以将此方法公开给 Liferay 而不是 uy UI,而是使用 Liferay cron 作业。
您只需要在 liferay-portlet.xml 中添加一个指向您的代码的声明:watch this simple guide
不同的是,如果您希望在每次通过界面创建站点时自动添加用户,您可以使用挂钩并覆盖数据库上的实体创建事件。
网站在 table 组中,因此您可以向服务事件添加 servlet.service.events.post
事件处理程序。
在那里你可以调用你的代码:read this useful post
希望对你有用
我想自定义站点管理员角色权限,即,我需要启用一项功能来在各个站点下创建用于站点管理的用户。我怎样才能做到这一点?我需要用 Hook 实现它还是需要创建 EXT?或者任何其他更简单的方法来实现这一目标? 我需要在各自站点下启用用户创建并为站点管理员分配权限。我不想通过超级管理员创建用户。
也许您可以创建一个自定义 portlet,将其放在控制面板中,只有站点管理员在其中填写表格,才能创建您直接指定为当前站点成员的用户。
专业版: 我认为你可以完成你的任务。
反对意见:
- 你要花时间去开发,这不是"solution in a few clicks"。
- 这不是权限自定义。
参考资料: "Beginning Liferay Development" 这是一个有用的指南,解释了如何使用所有 Liferay 最佳实践开发一个完整的 portlet "famous" KnowledgeBasePortlet。我建议你全部阅读,但你的问题的重点是:
- 设置权限,只允许站点管理员创建用户
- 正在将 Portlet 添加到控制面板
注意: 正如您将看到的(创建实体操作),KnowledgeBasePortlet 创建了两个自定义实体,您不需要这样做:您需要的实体已经存在。使用 that chapter 只是为了了解如何将方法调用到 add/edit/delete 实体,您将必须通过 UserLocalServiceUtil 对用户实体执行相同的操作。
我不确定我是否理解您的需求(抱歉,我试图假设)。
如果您已经有不同的网站并且需要以编程方式创建所有站点管理员用户(一次性),则需要创建一个 portlet(并将其部署为控制面板 portlet)。 您的 portlet 应该只有一个接口来调用方法...并且您的方法只需要
- 获取您需要的所有站点(其中管理员用户尚不存在)
- 创建用户(使用 UserLocalServiceUtil)
- 通过RoleLocalServiceUtil and UserGroupRoleLocalServiceUtil为用户分配必要的角色 可以在此处找到一个很好的代码示例:Liferay Forum: How to Programmatically Add Liferay Users in Java
如果您更喜欢您的 portlet 可以将此方法公开给 Liferay 而不是 uy UI,而是使用 Liferay cron 作业。 您只需要在 liferay-portlet.xml 中添加一个指向您的代码的声明:watch this simple guide
不同的是,如果您希望在每次通过界面创建站点时自动添加用户,您可以使用挂钩并覆盖数据库上的实体创建事件。
网站在 table 组中,因此您可以向服务事件添加 servlet.service.events.post
事件处理程序。
在那里你可以调用你的代码:read this useful post
希望对你有用