首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Liferay中的用户注册创建附加验证步骤

为Liferay中的用户注册创建附加验证步骤
EN

Stack Overflow用户
提问于 2012-12-29 02:01:50
回答 2查看 1.8K关注 0票数 0

我试图在Liferay中为用户注册过程添加一些验证步骤,但似乎找不到合适的位置。

据我所知,在创建新用户时,没有任何事件可以添加我自己的代码(与我们有"login.events.post“事件的登录过程相反)。

有办法这样做吗?

更新:尽管创建一个新的用户注册portlet很有意义,但我们正在努力避免重新做救生圈已经做的事情。

我刚刚发现了"servlet.service.events.pre"事件,并认为可以在CreateAccountAction类上创建一个钩子来添加我自己的验证,但是我并没有从救生筏关于这个主题的文档中获得多少信息。如有任何想法/建议/链接,将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-11 19:40:35

最后在create_account.jsp上创建了一个钩子,并使用ajax对新用户的信息进行了一些验证(以及服务器端验证)。然后在login.jsp上创建另一个钩子(在救生筏完成创建新用户帐户后立即执行)。

加载login.jsp时,如果在此页面上登陆之前添加了用户,则救生筏将进行评估:

代码语言:javascript
复制
<c:if test='<%= SessionMessages.contains(request, "user_added") %>'>

就在这里,我们在新创建的用户上添加了第二轮自己的验证。

票数 0
EN

Stack Overflow用户

发布于 2012-12-29 06:33:20

我想提出一个很简单的方法。

您不必创建一个hook来覆盖现有的Liferay的用户注册表单。您可以使用您最喜欢的视图技术和您自己的自定义字段创建您自己的自定义用户注册表单(我的意思是,与Liferay的用户注册字段相比,字段的数量更少)。此表单上的所有验证将由您的代码完成,错误消息将仅由您的代码抛出。只有当所有验证都通过时,才能调用Liferay的addUser方法。

我只是想举个例子。根据您的要求修改代码。

代码语言:javascript
复制
if(allValidationsPassThrough)
{
 long[] organizationIds = { 111L }; //Just an example. Check the Organisation ID you are using
long[] groupIds = { 222L };
long[] roleIds = { 333L };
long[] userGroupIds = (long[])null;
String screenName = yourBean.getUser(); //Just an example

UserLocalServiceUtil.addUser(//Pass the parameters to this method );
}

注意事项:有许多参数是该方法所期望的。在用户注册表单中,如果没有捕获生日(例如,),则将值传递为null或您自己的生日:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14078073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档