Liferay 向新用户授予对组织页面的访问权限
在我正在使用的web应用程序中Liferay 向新用户授予对组织页面的访问权限,liferay,portlet,Liferay,Portlet,在我正在使用的web应用程序中 我已经创建了一个组织网站,可以通过group/game/home访问 我在登录后创建了这个默认登录页。将此值放入portal-ext.properties文件default.landing.page.path=/group/games/home 我还设置了这两个属性,以确保用户在成功登录后重定向到默认登录页layout.show.portlet.access.denied=false auth.login.url=/web/guest/login 现在,当我向
- 我已经创建了一个组织网站,可以通过
访问group/game/home
- 我在登录后创建了这个默认登录页。将此值放入portal-ext.properties文件
default.landing.page.path=/group/games/home
- 我还设置了这两个属性,以确保用户在成功登录后重定向到默认登录页
layout.show.portlet.access.denied=false auth.login.url=/web/guest/login
如果有人使用早期版本,请参考Prakash K的建议 将用户添加到Liferay后。 您可以使用以下代码将用户添加到组织
UserLocalServiceUtil.addOrganizationUser(organizationId,userId);
OrganizationLocalServiceUtil.updateOrganization(organization, true);
默认情况下,您可以从Liferay v6.2+开始从UI设置此关联
应用于现有用户
复选框,以更新已在数据库中创建的用户的关联,在这种情况下,用户在此设置后首次登录系统时关联的用户
希望有帮助 注意:以下解决方案适用于Liferay 6.1,对于Liferay 6.2等更高版本,您可以直接使用配置选项,如下所述:
这可行吗
不,是的
它不能仅通过配置来完成,但可以通过一些开发工作来实现
实现这一点有多种方法。我能想到的最简单的方法是使用ModelListener挂钩,下面是一个简短的教程:
liferay hook.xml
中定义以下内容:
<hook>
<portal-properties>portal.properties</portal-properties>
</hook>
BaseModelListener
,创建类MyCustomUserListener
:
公共类MyCustomUserListener扩展了BaseModelListener{
@凌驾
AfterCreate(用户模型)上的公共void引发ModelListenerException{
//将用户与组织关联的代码
//示例代码如下所示:
long userId=model.getUserId();
//因为该方法一次向组织添加多个用户
long[]userId=新的long[]{userId};
UserLocalServiceUtil.addOrganizationUsers(organizationId,userID);
}
}
onAfterCreate
方法但是,对于已经创建的用户,您将做些什么呢
希望这能有所帮助。“默认用户关联”不提供任何关联“组织”的方法。您所能做的就是分配站点、角色和用户组。我已经在LR 6.1 EE中检查过了。添加组织到底意味着什么?它只是提供了url
组/游戏/主页
?我得到了这个。这只是提供组织名称。谢谢@Prakash。。。我感谢你详细的回答。我马上给你打一针。但我现在可以用Ankit P的建议来完成这项工作。您认为这种方法可能有任何缺点吗?这就是当您在问题中未指定liferay版本时所发生的情况:-),我以为您希望使用liferay 6.1,但我猜您正在使用的是liferay 6.2。我将在答复中提到这一点。尽管我会为那些在Liferay 6.1中寻找解决方案的人保留这个答案,它可能会帮助其他正在寻找侦听器钩子的人,例如:-)一如既往地感谢@Gautam!
value.object.listener.com.liferay.portal.model.User=com.my.hook.listeners.MyCustomUserListener