+<%@ taglib uri="tags-fmt" prefix="fmt"%>
+<%@ taglib uri="tags-core" prefix="c"%>
+<%@ taglib uri="tags-html" prefix="html"%>
+<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%>
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+
+
+
+ ,
+
+
+
+
+
+
+
+
+
Index: lams_central/web/signup/emailVerifyResult.jsp
===================================================================
diff -u
--- lams_central/web/signup/emailVerifyResult.jsp (revision 0)
+++ lams_central/web/signup/emailVerifyResult.jsp (revision 5cf9e6a0f2d86fd8371a466a07b8c0cbf3f81cb8)
@@ -0,0 +1,45 @@
+<%@ taglib uri="tags-lams" prefix="lams"%>
+<%@ taglib uri="tags-fmt" prefix="fmt"%>
+<%@ taglib uri="tags-core" prefix="c"%>
+<%@ taglib uri="tags-html" prefix="html"%>
+<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8"%>
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+ ,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/User.hbm.xml
===================================================================
diff -u -r60e44b19b8de02a00faa437fba8117928baa3d73 -r5cf9e6a0f2d86fd8371a466a07b8c0cbf3f81cb8
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/User.hbm.xml (.../User.hbm.xml) (revision 60e44b19b8de02a00faa437fba8117928baa3d73)
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/usermanagement/User.hbm.xml (.../User.hbm.xml) (revision 5cf9e6a0f2d86fd8371a466a07b8c0cbf3f81cb8)
@@ -194,6 +194,9 @@
length="128"
+
+
Index: lams_common/src/java/org/lamsfoundation/lams/signup/service/ISignupService.java
===================================================================
diff -u -r51fb2a37254f24bb2a805d4ffd54482c779f43fa -r5cf9e6a0f2d86fd8371a466a07b8c0cbf3f81cb8
--- lams_common/src/java/org/lamsfoundation/lams/signup/service/ISignupService.java (.../ISignupService.java) (revision 51fb2a37254f24bb2a805d4ffd54482c779f43fa)
+++ lams_common/src/java/org/lamsfoundation/lams/signup/service/ISignupService.java (.../ISignupService.java) (revision 5cf9e6a0f2d86fd8371a466a07b8c0cbf3f81cb8)
@@ -20,7 +20,6 @@
* ****************************************************************
*/
-
package org.lamsfoundation.lams.signup.service;
import java.util.List;
@@ -47,4 +46,6 @@
void signinUser(String login, String context);
User getUserByLogin(String login);
+
+ boolean emailVerify(String login, String hash);
}
Index: lams_common/src/java/org/lamsfoundation/lams/signup/service/SignupService.java
===================================================================
diff -u -r098532cd2b5687da032408b04a1120dab668083b -r5cf9e6a0f2d86fd8371a466a07b8c0cbf3f81cb8
--- lams_common/src/java/org/lamsfoundation/lams/signup/service/SignupService.java (.../SignupService.java) (revision 098532cd2b5687da032408b04a1120dab668083b)
+++ lams_common/src/java/org/lamsfoundation/lams/signup/service/SignupService.java (.../SignupService.java) (revision 5cf9e6a0f2d86fd8371a466a07b8c0cbf3f81cb8)
@@ -21,6 +21,7 @@
import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
import org.lamsfoundation.lams.util.Configuration;
import org.lamsfoundation.lams.util.ConfigurationKeys;
+import org.lamsfoundation.lams.util.HashUtil;
import org.lamsfoundation.lams.util.LanguageUtil;
public class SignupService implements ISignupService {
@@ -33,7 +34,6 @@
public void signupUser(User user, String context) {
// save User
user.setTheme(userManagementService.getDefaultTheme());
- user.setDisabledFlag(false);
user.setAuthenticationMethod(getAuthenticationMethod(AuthenticationMethod.DB));
user.setLocale(getDefaultLocale());
user.setCreateDate(new Date());
@@ -142,6 +142,20 @@
return signupDAO.contextExists(soid, context);
}
+ @Override
+ public boolean emailVerify(String login, String hash) {
+ User user = getUserByLogin(login);
+ if (user == null || !hash.equals(HashUtil.sha256(user.getEmail(), user.getSalt()))) {
+ return false;
+ }
+ if (!Boolean.TRUE.equals(user.getEmailVerified())) {
+ user.setEmailVerified(true);
+ user.setDisabledFlag(false);
+ userManagementService.save(user);
+ }
+ return true;
+ }
+
public void setSignupDAO(ISignupDAO signupDAO) {
this.signupDAO = signupDAO;
}
Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/User.java
===================================================================
diff -u -r455c0190de52ccfe3116ecf5d805e344a6506b69 -r5cf9e6a0f2d86fd8371a466a07b8c0cbf3f81cb8
--- lams_common/src/java/org/lamsfoundation/lams/usermanagement/User.java (.../User.java) (revision 455c0190de52ccfe3116ecf5d805e344a6506b69)
+++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/User.java (.../User.java) (revision 5cf9e6a0f2d86fd8371a466a07b8c0cbf3f81cb8)
@@ -41,7 +41,6 @@
import org.lamsfoundation.lams.util.LanguageUtil;
public class User implements Serializable, Comparable {
-
/** identifier field */
private Integer userId;
@@ -112,6 +111,9 @@
private String email;
/** persistent field */
+ private Boolean emailVerified = true;
+
+ /** persistent field */
private Boolean disabledFlag;
/** persistent field */
@@ -355,6 +357,14 @@
this.email = email;
}
+ public Boolean getEmailVerified() {
+ return emailVerified;
+ }
+
+ public void setEmailVerified(Boolean emailVerified) {
+ this.emailVerified = emailVerified;
+ }
+
public Boolean getDisabledFlag() {
return disabledFlag;
}
@@ -502,14 +512,10 @@
: pagesWithDisabledTutorials;
return new UserDTO(userId, firstName, lastName, login, languageIsoCode, countryIsoCode, direction, email,
- theme != null ? new ThemeDTO(theme) : null,
- timeZone, authenticationMethod.getAuthenticationMethodId(), fckLanguageMapping,
- (tutorialsDisabled == null ? false : true), // assume tutorials enabled if not set
- tutorialPages,
- (firstLogin == null ? true : false), // assume no firstLogin value means they haven't logged in
- lastVisitedOrganisationId,
- portraitUuid
- );
+ theme != null ? new ThemeDTO(theme) : null, timeZone, authenticationMethod.getAuthenticationMethodId(),
+ fckLanguageMapping, (tutorialsDisabled == null ? false : true), // assume tutorials enabled if not set
+ tutorialPages, (firstLogin == null ? true : false), // assume no firstLogin value means they haven't logged in
+ lastVisitedOrganisationId, portraitUuid);
}
public UserBasicDTO getUserBasicDTO() {