Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Liferay 如何根据站点设置默认组_Liferay - Fatal编程技术网

Liferay 如何根据站点设置默认组

Liferay 如何根据站点设置默认组,liferay,Liferay,我有两个站点(site1和site2)和两个组(group1和group2)。我在两个站点上都登录了Liferay的portlet。我希望,如果用户通过登录站点1上的portlet注册,那么用户被分配到组1,如果用户通过登录站点2上的portlet注册,那么用户被分配到组2 怎么做 ==编辑=== 我尝试使用struts操作编写钩子,但它对我不起作用 liferay-hook.xml: <hook> <struts-action> <stru

我有两个站点(
site1
site2
)和两个组(
group1
group2
)。我在两个站点上都登录了Liferay的portlet。我希望,如果用户通过
登录
站点1上的portlet注册,那么用户被分配到
组1
,如果用户通过
登录
站点2上的portlet注册,那么用户被分配到
组2

怎么做

==编辑===

我尝试使用struts操作编写钩子,但它对我不起作用

liferay-hook.xml:

<hook>
    <struts-action>
        <struts-action-path>/login/create_account</struts-action-path>
        <struts-action-impl>com.mypackage.CreateAccountAction</struts-action-impl>
    </struts-action>
</hook>
单击创建帐户案例:

12:25:38,177 ERROR [http-bio-8078-exec-126][PortletRequestProcessor:466] Forward does not exist

您可以编写钩子来覆盖负责创建帐户的struts操作(
/login/create_account

在代码中,执行原始struts操作的processAction(
com.liferay.portlet.login.action.CreateAccountAction
),在检查
SessionErrors
对象之后,它应该是空的。(因为只有用户被创建)

如果
SessionErrors
为空,则通过emailaddress(从请求参数获取emailaddress)获取用户对象,并通过
themeDisplay
对象获取当前组


拥有用户对象和当前组对象,您可以通过
GroupLocalServiceUtil.addUserGroups(userId,groupId)

轻松地将用户分配到组中,谢谢您的回答。我是个要饭的人,雷,我不能用你的答案。我编辑了我的问题以显示我试图使用你的答案。你能写一些示例代码吗?谢谢。请同时重写渲染方法以避免此错误。我不知道如何从
主题显示中获取用户
themeDisplay.getUser()
返回一些带有邮件的默认liferay用户
default@liferay.com
。我不需要当前组,我需要
group1
id或
group2
id,我应该按名称查找组。由于您是注册时的来宾用户,因此default@liferay.com(来宾用户)。您必须从请求中获取电子邮件地址,然后使用
UserLocalServiceUtil.getUserByEmailAddress
,您可以获取用户。
12:25:38,177 ERROR [http-bio-8078-exec-126][PortletRequestProcessor:466] Forward does not exist