From f06dc0b424d6f79edbab7db72ef9ee9ac647f3a9 Mon Sep 17 00:00:00 2001 From: Roland Haeder Date: Tue, 6 Oct 2015 14:10:03 +0200 Subject: [PATCH] =?utf8?q?Continued:=20-=20the=20user=20bean=20(controller?= =?utf8?q?)=20needs=20to=20be=20updated=20after=20successful=20registratio?= =?utf8?q?n=20to=20bear=20the=20user=20id=20-=20added=20new=20template=20r?= =?utf8?q?egister=5Fdone.xhtml=20-=20removed=20companyName=20from=20bean?= =?utf8?q?=20as=20this=20will=20be=20handled=20differently=20-=20added=20b?= =?utf8?q?irthday=20property=20-=20also=20doRegister()=20needs=20to=20retu?= =?utf8?q?rn=20the=20updated=20user=20instance=20-=20more=20language=20int?= =?utf8?q?ernationalized=20-=20temporary=20set=20user=20account=20status?= =?utf8?q?=20to=20CONFIRMED=20for=20easier=20development=20-=20many=20more?= =?utf8?q?=20other=20imrovements=20...=20:-(=20I=20hit=20commit=20to=20qui?= =?utf8?q?ckly.=20-=20updated=20jars=20Signed-off-by:Roland=20H=C3=A4der?= =?utf8?q?=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- lib/jcontacts-core.jar | Bin 18555 -> 18203 bytes lib/juser-lib.jar | Bin 3386 -> 3425 bytes .../beans/login/UserLoginWebBean.java | 6 +- .../beans/register/UserRegisterWebBean.java | 18 ++- .../register/UserRegisterWebController.java | 4 +- .../addressbook/beans/user/UserWebBean.java | 75 +++++++++--- .../beans/user/UserWebController.java | 50 +++++--- .../localization/bundle_de_DE.properties | 3 +- .../localization/bundle_en_US.properties | 3 +- web/WEB-INF/faces-config.xml | 27 ++--- .../templates/guest/guest_personal_data.tpl | 12 -- web/WEB-INF/web.xml | 112 ++++++++++-------- web/user/register_done.xhtml | 37 ++++++ 13 files changed, 233 insertions(+), 114 deletions(-) create mode 100644 web/user/register_done.xhtml diff --git a/lib/jcontacts-core.jar b/lib/jcontacts-core.jar index 116c3511fbfe8d060114a5877f2f106b1b8c157b..5fd68dc8f80098600ff320c77eef156f7e79d9d2 100644 GIT binary patch delta 5363 zcmaJ_33yaj75?v=nY?83vXF!XvOw4pG6_w{o)7|sEKr0}xb6-58@-kW6d^2YhTIrqQYIsZL( zJNI4Qq8{0#jG5DX{vZ$!3|z6*DAF=kY^~X$5ueEy`F;_lnWriwnWe@_vRO@%r>%8u<`?>-^mpMdh2u{$^pkus_M)UQQdUKa{x?_`XrB97Auf|QUO9%W485n4# znMkzKEF@X!APlzBY~)yJu2Y|fB=bSNhB}_p3zyn`N}WDsPMfh#zTDAK;pnJDm8Gj1 zHC9@SIsgjwlp4lG55J}LmP>o$F60C9FEbaY;pXc2>~LccQ}9j#3UFS;yCN>=xEPPW z1`)vDg3P~{h(f#<#QXSr5dXkGC3{IK{w3%GK_3eGx1h^{t_b>%psRxZOQb-glpsxz zPmn(>Fd#5akS-`*P=cVKphQ82pd>-bf>Lyqs;dD4)1)vhhzTm4S@KdDYM=-!`vJ$J zGDT#G7$jn_h-?u#3G*m(1?GtuB4VhBd=bM$3>Ps%#7GgNbXB0M!gw`0h>5C*PEjE- zUYtNtB80{S)itVAS7o{y+o1&)sgCuD0iU|rT%`>&*VHDP$C5{OTuff1)Btm*c7`kH zwAPWHu}-CJLz{sIu-d@qFvq|>m}9ouj075CUf?}=kO!)!nbr)W2jnbeLZFxm@Q+ND`LKgJFw8e zGC?cxDFdGtbf1W|SZClNe8IrOlHDL;qcr(4zG7etwknjE3u;TuWm)Azx2ZYxQZqXSL%IU5ztTgBst_m8Ge00hhGKwKtWUF&o!m8n?tptSvE}!Oe?t3vOj8xjSuAna*Mf+uVkaPQ}NFIVh)gpjGRW+PRo_8*Y~-VQIrLJ8e>! zTR>}$rTNU#7f$6!_^^nTi<$rUVl2T@wzKrzDXKn!Pl{4a9Ov|iGPzuutg!8B;#Rv! z7@~C*Gj~bno`KyR8OX{=7fwQdt)H=nX^lpcMd&mcLK;0v9g_F5hBaN716i!&1s*aP@Hn{dj)SVL-DMoy1#l#AAj)(0cw#o%#~;vuKcfY2a-YA&P5TZv*m-V~cX`}g;3Byg zMPq#rjr9%xOGFJoK&3^wHLizcoO9eNxmz4%(M-zROfo&0@J^D> zap$L-_?#Ow8Rwv#gWBo{Li2EsJ5-zLb;%6CNI@aNDhn*zIHXFb^Gj zZ}vJM%vDk0_COt()W=|A-+;0myyl|P&7{$j3F8=tiFr6bBgzMpX}KweW&0*o63lq` zpvrA|il=1;L7qOSa{FL9naqg6#J;cc_cpZ%OdCVn@QJIG{V3?_ECp(G|1U1rMgOlw~4V`_<~VTP_= zc5B>rm(lL>7=Fsin7g%N#V zYHlX?douYke&WSMb2C{(CTn9bv111n=7s*e+bQ%(t((b1o=kp*7rdC%x|wVslZ{?X z(s(o4!JWd33@T(<%o`DXHRJa;_CQ12eYcF!^JnbdC#=IW8bs-7rG zwUI-63=Vc+spM&9u|GX3dQtE4G|3lSKa<={+hCVb0EZ?n4~diIaf?y(ql?TA~+ zW6>GI4#rUuPqrLFV>_}Wf;)u??MOO~iF4AfJ&H*uQuT(^>vNV$*mew)=SMQ5JJHmW z2^U*cIj#Usbs<}wK%P2@kUE7L^$eQSvr*()oZCAOMfeSVOHvZ|G8)e&{2kiJO`_gv zrV^~hhYq3n2>NZ?7fYb4m!g~$@94dOo#d=M%TzHmeuHwmIc!Aqf_o*ZpA$`_Udvd% zTiUYUcstlbLP&z#PPE7%qoPF=M-3>!F$_kn=d6GIAM0$VQu_sls9EQ6pd5f5F=h==+hY`0eg}ukn+g z{L9&O4J_kp~OUf+3Pr4^+JNAk54$}moI&bn(Fvn(A?cLQF7;+$|Ol| zu9IX&^JGcP=4q02H_wu!vSo(r)8OWo>G|@pu+JAZ8jt+;u1$_N4>k`o^IG#nLqlt> zHnqqqSyP*2KHQonr8`-=sRXmP0v760?z%P@I)^L?G~n{&_I&iT)| z=iYnnd*}i6(PpJjo9yuhfH+`x(-u8nYj4_8)++Q=w$Lm2+U_PJOBJ(XOjqNiwn^1W zaYj`pv^OOGki|u-eEu$1!=J?SlGs`h3H_NdY2SA~MRKxg4 zpEXWc;#*moaRVU#ksPpm<>JC+YZoq=-?F&bSfTnDM;dw?bK?A=8v~e(|M-!ID?;8D z@{SMh#^JpHV({Mp>+i=SAMXe70X_`iBV3j0|D@w%;jWQW#GbE|aGG!);k?4d2p21y zPq;YY{K5rZ>B446V@3eA zDw9rs4=SCr^fo!xQ^rgMTEI9GVXM{Hn)Xg*fA*H z=TVD|+qE1cyDZU|ojADTw!}3`r5oF{Q~yuUPWL9aV!MtFxLZdEb98(KbByII7~5ua+% zRim2Fk(s8cP#*V;#?Zfs$3Qx!U@Eua&E__o#&#lP{Zp)`vNnVK%vEgsG?~vdV-{w! zl?K>jl331Q3&(s8pPz`iKxILy9Ym2DO*0hjSI>hdb z5dQ^BfF_=@dk4dVrJQ;z>tAffZCFMrrnVMQv>Yo$r6z8*X9%E>J!YkhS=A+#UXPHv zhWwXga@g#(U1qNCn!zQCkZKG4vgHKRR!xG}9x{M1Y@wkAT`0fWZ7^5c9voryUDgmy zHbYNQVM*(|N#gFY$BKu-w%F?w+F)65565stzlN_98>7sg60v6Yiq!kM>}3qvLn83q z-_^_D?AiN37kWl*xHlAzm`z=i8P9gN#9TL@o8h;atqga2Oawy1l0cZ>N$Mw?fzeRN zVXgQ+=~mX(a4K(7qy!H@1q=2=Gd@gDn%l;vRI}p{yf_R$euhLI2Yq-NJjA{dYZA8M zVb(ZZjwFf{PL@J5Iayzi$w|n1O~u(*VY&0fi-W>`S9Kuk=11xth+cb#MN~!{0C)hV=-rou00&k!iGnKy3_z+GvAPa{k#!jz9~U{+d;A9C>Ys@wAi4 zx0qwdpAzguaM&Rf2)$tn;+no2MMXIn_ZfM?;yc!EIFP-{ZhOn>U|`s1#m-iM!5EB5X} zyKRhwnZ!d(@F|SiL&oxDtTd_=*Tv@jAu+PmxMg5kC>$NCKVnpRgcD=Km}2eISjkl+ zGpQz0Z;?~)09U=d!tBYFb}YmOL);2Q*F(UJQ#FW421h|+o%u>GPZuP`P9%A*NOLL|jbB*TehL=+^}{i5V17GcJd*{P;CE!P*hD&~dV!v)k^;?!G4y z$%WGcAqGLI(*+f-NSKwlAt`ktsUecuC`haeQb|5!$udslq~uCOSw3iV)qI#|ocQbG zoXF^#Og%S6(PLe;O41~!#Wc9gY49{xwM?&i7;Iz>3Y1>o0W*kUW)uw8<*g*!GSRmT zj$G~8t}2<7^-#&x9^>@!TCs+(06PFXuB>rqQqwwakkUU*iPspLH-!i@7nBe(lwu2%5b=B9YOQ}He; zZjWMwmA@)^FWR!gkuBT3(&^7Vu1NUMbVE|?Ey16h1am1*d$vU%~G<& zxZpnA$j67%=<`faUyWG6I9sf|zvV7}oh2VkZ!jyjwpKVQxd0W;1$Zq&lKsX=s^J^s zf<1XW(TLCd!2+h+otP+QN93(2h_KM#m4=4+I(pO0jpO(rFyA+vR%+S>B=uFX z4~^$H(vCYzPWq*sRC&-V-%P!A=wKuJF4fgZt+;-&)YjKem*Q;w zRL4iw!iFi?yZPDG`Pq>G&EL)q)p5ox^*Q{mlO^)bHDqc}1kIN0vIHZqFsQ9+EBAgY(q z9z>mEbOKRAOm;wOa}ZM_6R%Ldn|sOGd%tfpGBDhp{D7r`IY`52vLK823< w>gM(XQMbAC(JT$;$x{M3!{Ro7q%;!)0|?tPAi$DFes%^1sGH2#S~)>d0O`3$lmGw# delta 235 zcmaDTwM&X8z?+$ci-CcIfq@}8Y^)0u$m3ko3elO~XyEX!yNqJkJLK~yiJ zJ%~ET=mesKnCyVm<{+juser + this.userController.copyUser(registeredUser); + + // All fine, redirect to proper page + return "register_done"; //NOI18N } catch (final UserAlreadyRegisteredException ex) { // Continue to throw throw new FaceletException(ex); diff --git a/src/java/org/mxchange/addressbook/beans/register/UserRegisterWebController.java b/src/java/org/mxchange/addressbook/beans/register/UserRegisterWebController.java index bd27c9b3..0b5ceb5c 100644 --- a/src/java/org/mxchange/addressbook/beans/register/UserRegisterWebController.java +++ b/src/java/org/mxchange/addressbook/beans/register/UserRegisterWebController.java @@ -28,6 +28,8 @@ public interface UserRegisterWebController extends Serializable { /** * Registers the user, if not found. Otherwise this method should throw an * exception. + *

+ * @return Redirection target */ - public void doRegister (); + public String doRegister (); } diff --git a/src/java/org/mxchange/addressbook/beans/user/UserWebBean.java b/src/java/org/mxchange/addressbook/beans/user/UserWebBean.java index 6f72ab67..5b0bdc27 100644 --- a/src/java/org/mxchange/addressbook/beans/user/UserWebBean.java +++ b/src/java/org/mxchange/addressbook/beans/user/UserWebBean.java @@ -16,6 +16,7 @@ */ package org.mxchange.addressbook.beans.user; +import java.util.Date; import javax.enterprise.context.SessionScoped; import javax.faces.view.facelets.FaceletException; import javax.inject.Named; @@ -44,6 +45,12 @@ public class UserWebBean implements UserWebController { private static final long serialVersionUID = 542_145_347_916L; /////////////////////// Properties ///////////////////// + + /** + * Birth day + */ + private Date birthday; + /** * Cellphone number */ @@ -59,11 +66,6 @@ public class UserWebBean implements UserWebController { */ private String comment; - /** - * Company name - */ - private String companyName; - /** * Country code */ @@ -99,6 +101,11 @@ public class UserWebBean implements UserWebController { */ private Short houseNumber; + /** + * User id + */ + private Long userId; + /** * Phone number */ @@ -149,6 +156,31 @@ public class UserWebBean implements UserWebController { } } + @Override + public void copyUser (final User user) { + // Copy all fields: + // - base data + this.setUserId(user.getUserId()); + this.setGender(user.getUserContact().getGender()); + this.setFirstName(user.getUserContact().getFirstName()); + this.setFamilyName(user.getUserContact().getFamilyName()); + this.setStreet(user.getUserContact().getStreet()); + this.setHouseNumber(user.getUserContact().getHouseNumber()); + this.setZipCode(user.getUserContact().getZipCode()); + this.setCity(user.getUserContact().getCity()); + this.setCountryCode(user.getUserContact().getCountryCode()); + + // - contact data + this.setPhoneNumber(user.getUserContact().getPhoneNumber()); + this.setCellphoneNumber(user.getUserContact().getCellphoneNumber()); + this.setFaxNumber(user.getUserContact().getFaxNumber()); + this.setEmailAddress(user.getUserContact().getEmailAddress()); + + // -- other data + this.setBirthday(user.getUserContact().getBirthday()); + this.setComment(user.getUserContact().getComment()); + } + @Override public User createUserInstance () { // User message @@ -162,7 +194,7 @@ public class UserWebBean implements UserWebController { user.setUserName(this.getUserName()); // Create new contact - Contact contact = new UserContact(this.getGender(), this.getFirstName(), this.getFamilyName(), this.getCompanyName()); + Contact contact = new UserContact(this.getGender(), this.getFirstName(), this.getFamilyName()); contact.setStreet(this.getStreet()); contact.setHouseNumber(this.getHouseNumber()); contact.setZipCode(this.getZipCode()); @@ -170,6 +202,7 @@ public class UserWebBean implements UserWebController { contact.setPhoneNumber(this.getPhoneNumber()); contact.setFaxNumber(this.getFaxNumber()); contact.setCellphoneNumber(this.getCellphoneNumber()); + contact.setBirthday(this.getBirthday()); contact.setComment(this.getComment()); // Set contact in user @@ -181,6 +214,16 @@ public class UserWebBean implements UserWebController { return user; } + @Override + public Date getBirthday () { + return birthday; + } + + @Override + public void setBirthday (final Date birthday) { + this.birthday = birthday; + } + @Override public String getCellphoneNumber () { return this.cellphoneNumber; @@ -211,16 +254,6 @@ public class UserWebBean implements UserWebController { this.comment = comment; } - @Override - public String getCompanyName () { - return this.companyName; - } - - @Override - public void setCompanyName (final String companyName) { - this.companyName = companyName; - } - @Override public String getCountryCode () { return this.countryCode; @@ -311,6 +344,16 @@ public class UserWebBean implements UserWebController { this.street = street; } + @Override + public Long getUserId () { + return this.userId; + } + + @Override + public void setUserId (final Long userId) { + this.userId = userId; + } + @Override public String getUserName () { return this.userName; diff --git a/src/java/org/mxchange/addressbook/beans/user/UserWebController.java b/src/java/org/mxchange/addressbook/beans/user/UserWebController.java index c161b61a..7bef48a4 100644 --- a/src/java/org/mxchange/addressbook/beans/user/UserWebController.java +++ b/src/java/org/mxchange/addressbook/beans/user/UserWebController.java @@ -17,6 +17,7 @@ package org.mxchange.addressbook.beans.user; import java.io.Serializable; +import java.util.Date; import org.mxchange.jcontacts.contact.gender.Gender; import org.mxchange.jusercore.model.user.User; @@ -27,6 +28,13 @@ import org.mxchange.jusercore.model.user.User; */ public interface UserWebController extends Serializable { + /** + * Copies given user into the controller + *

+ * @param user User instance + */ + public void copyUser (final User user); + /** * Creates an instance from all properties *

@@ -34,6 +42,20 @@ public interface UserWebController extends Serializable { */ public User createUserInstance (); + /** + * Getter for birth day + *

+ * @return Birth day + */ + public Date getBirthday (); + + /** + * Setter for birth day + *

+ * @param birthday Birth day + */ + public void setBirthday (final Date birthday); + /** * Cellphone number *

@@ -76,6 +98,20 @@ public interface UserWebController extends Serializable { */ public void setComment (final String comment); + /** + * Getter for user id + *

+ * @return User id + */ + public Long getUserId (); + + /** + * Setter for user id + *

+ * @param userId User id + */ + public void setUserId (final Long userId); + /** * Getter for user name *

@@ -104,20 +140,6 @@ public interface UserWebController extends Serializable { */ public void setUserPassword (final String userPassword); - /** - * Company name - *

- * @return the companyName - */ - public String getCompanyName (); - - /** - * Company name - *

- * @param companyName the companyName to set - */ - public void setCompanyName (final String companyName); - /** * Country code *

diff --git a/src/java/org/mxchange/localization/bundle_de_DE.properties b/src/java/org/mxchange/localization/bundle_de_DE.properties index 3b8d9d9a..54eea798 100644 --- a/src/java/org/mxchange/localization/bundle_de_DE.properties +++ b/src/java/org/mxchange/localization/bundle_de_DE.properties @@ -61,7 +61,6 @@ PRIVACY_POLICY_NOT_ACCEPTED_MESSAGE=Bitte den Datenschutzbestimmungen zustimmen. TERMS_NOT_ACCEPTED_MESSAGE=Bitte den AGBs zustimmen. PERSONAL_DATA_MINIMUM_NOTICE=Bitte geben Sie mindestens Name, Anschrift und Telefonnummer an. PERSONAL_DATA_GENDER=Anrede: -PERSONAL_DATA_COMPANY_NAME=Firmenname: PERSONAL_DATA_FIRST_NAME=Vorname: PERSONAL_DATA_FAMILY_NAME=Nachname: PERSONAL_DATA_STREET=Stra\u00dfe: @@ -109,3 +108,5 @@ BUTTON_USER_LOGIN=Einloggen BUTTON_CONTINUE_STEP_2=Weiter zu Schritt 2 GUEST_REGISTRATION_ENTER_USER_NAME=Benutzernamen eingeben: GUEST_REGISTRATION_USER_NAME_NOTICE=Der Benutzername darf nur einmal vorkommen. +LINK_GUEST_RESENT_CONFIRMATION_LINK=Nochmals den Best\u00e4tigungslink aussenden? +GUEST_REGISTRATION_COMPLETED=Die Anmeldung ist abgeschlossen und Ihr Account wartet auf Freischaltung. Es ist eine Email mit einem entsprechenden Best\u00e4tigungslink zu Ihnen unterwegs. Diesen m\u00fcssen Sie einmal anklicken oder in die Adresszeile des Browsers kopieren und dann aufrufen lassen. Danach ist Ihr Account freigegeben. diff --git a/src/java/org/mxchange/localization/bundle_en_US.properties b/src/java/org/mxchange/localization/bundle_en_US.properties index 66f79f5e..2f6c7127 100644 --- a/src/java/org/mxchange/localization/bundle_en_US.properties +++ b/src/java/org/mxchange/localization/bundle_en_US.properties @@ -61,7 +61,6 @@ PRIVACY_POLICY_NOT_ACCEPTED_MESSAGE=Please accept our privacy policy. TERMS_NOT_ACCEPTED_MESSAGE=Please accept Terms&Conditions. PERSONAL_DATA_MINIMUM_NOTICE=Please enter at least your name, address and phone number. PERSONAL_DATA_GENDER=Salutation: -PERSONAL_DATA_COMPANY_NAME=Company name: PERSONAL_DATA_FIRST_NAME=First name: PERSONAL_DATA_FAMILY_NAME=Family name: PERSONAL_DATA_STREET=Street: @@ -109,3 +108,5 @@ BUTTON_USER_LOGIN=Login BUTTON_CONTINUE_STEP_2=Weiter zu Schritt 2 GUEST_REGISTRATION_ENTER_USER_NAME=Enter user name: GUEST_REGISTRATION_USER_NAME_NOTICE=The user name must only exist once. +LINK_GUEST_RESENT_CONFIRMATION_LINK=Resend again the confirmation link? +GUEST_REGISTRATION_COMPLETED=The registration is completed and your account is pending confirmation. An email has been sent to you. There you will find a confirmation link which you have to click once or copy it into your browser's address bar and call it. diff --git a/web/WEB-INF/faces-config.xml b/web/WEB-INF/faces-config.xml index 92ee7866..dab47156 100644 --- a/web/WEB-INF/faces-config.xml +++ b/web/WEB-INF/faces-config.xml @@ -13,22 +13,22 @@ * - - user_register - /user/register.xhtml - index /index.xhtml - user_lost_passwd - /user/lost_passwd.xhtml + user_register + /user/register.xhtml user_login /user/login.xhtml + + user_lost_passwd + /user/lost_passwd.xhtml + terms /terms.xhtml @@ -45,19 +45,18 @@ logout /bye.xhtml - - admin_product - /admin/product.xhtml - - - admin_category - /admin/category.xhtml - admin_index /admin/index.xhtml + + /user/register.xhtml + + register_done + /user/register_done.xhtml + + /admin/admin_logout.xhtml diff --git a/web/WEB-INF/templates/guest/guest_personal_data.tpl b/web/WEB-INF/templates/guest/guest_personal_data.tpl index f5571468..4496e88d 100644 --- a/web/WEB-INF/templates/guest/guest_personal_data.tpl +++ b/web/WEB-INF/templates/guest/guest_personal_data.tpl @@ -25,18 +25,6 @@

-
-
- -
- -
- -
- -
-
-
diff --git a/web/WEB-INF/web.xml b/web/WEB-INF/web.xml index ddd10b75..f8273612 100644 --- a/web/WEB-INF/web.xml +++ b/web/WEB-INF/web.xml @@ -1,53 +1,69 @@ - Addressbook Application v1.0 - - javax.faces.PROJECT_STAGE - Development - - - Faces Servlet - javax.faces.webapp.FacesServlet - 1 - - - Faces Servlet - /faces/* - - - + Addressbook Application v1.0 + + javax.faces.PROJECT_STAGE + Development + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + /faces/* + + + 30 - - - faces/index.xhtml - - - Constraint1 - - loginArea - Login area - /llogin/* - - - User Authentication - user - - - - FORM - Loginbereich / Login area - - /user/login.xhtml - /user/login_error.xhtml - - - - A logged-in user that has previously registered himself/herself. - user - - - tpl - text/plain - + + + faces/index.xhtml + + + LoginConstraint + + loginArea + Login area + /llogin/* + + + User Authentication + user + + + + AdminConstraint + + admin + Administrative area + /admin/* + + + Admin authentication + admin + + + + FORM + Loginbereich / Login area + + /user/login.xhtml + /user/login_error.xhtml + + + + A logged-in user that has previously registered himself/herself. + user + + + tpl + text/plain + + + Administrativre rule + admin + diff --git a/web/user/register_done.xhtml b/web/user/register_done.xhtml new file mode 100644 index 00000000..5214611b --- /dev/null +++ b/web/user/register_done.xhtml @@ -0,0 +1,37 @@ + + + + + + #{msg.PAGE_TITLE_USER_REGISTER_DONE} + + + + + + + #{msg.SUB_TITLE_USER_REGISTER_DONE} + + + +
+ #{msg.GUEST_USER_REGISTRATION_COMPLETED} +
+ +
+ + + +
+
+ + + + +
+ -- 2.39.5