Index: ssts-web/src/main/resources/strtus_oa.xml =================================================================== diff -u -r27888 -r32300 --- ssts-web/src/main/resources/strtus_oa.xml (.../strtus_oa.xml) (revision 27888) +++ ssts-web/src/main/resources/strtus_oa.xml (.../strtus_oa.xml) (revision 32300) @@ -50,7 +50,8 @@ - + + Index: forgon-core/src/main/java/com/forgon/security/service/UserManager.java =================================================================== diff -u -r31478 -r32300 --- forgon-core/src/main/java/com/forgon/security/service/UserManager.java (.../UserManager.java) (revision 31478) +++ forgon-core/src/main/java/com/forgon/security/service/UserManager.java (.../UserManager.java) (revision 32300) @@ -156,5 +156,11 @@ * @return true:符合复杂度要求,不需要修改密码;false:不符合复杂度要求,需要修改密码; */ public boolean forceUserChangePwdWhenNotMeetPwdComplexityReq(String userName, String loginName, String password); + + /** + * 用户管理界面增加【解除登录锁定】 + * @param userId + */ + public void releaseLogonLock(String userId); } Index: forgon-core/src/main/java/com/forgon/directory/action/UserAction.java =================================================================== diff -u -r31063 -r32300 --- forgon-core/src/main/java/com/forgon/directory/action/UserAction.java (.../UserAction.java) (revision 31063) +++ forgon-core/src/main/java/com/forgon/directory/action/UserAction.java (.../UserAction.java) (revision 32300) @@ -24,6 +24,7 @@ import com.forgon.directory.model.OrgUnit; import com.forgon.directory.service.SysUserManager; import com.forgon.entity.PageEntity; +import com.forgon.exception.SystemException; import com.forgon.security.model.User; import com.forgon.security.model.UserAttribute; import com.forgon.security.service.UserManager; @@ -32,8 +33,10 @@ import com.forgon.tools.GB2Alpha; import com.forgon.tools.GB2WB; import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.StrutsResponseUtils; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.json.JSONUtil; import com.forgon.tools.json.JsonPropertyFilter; import com.forgon.tools.string.StringTools; import com.forgon.tools.util.PageUtil; @@ -445,4 +448,22 @@ } } + /** + * 用户管理界面增加【解除登录锁定】按钮GDSZYY-104 + */ + public void releaseLogonLock(){ + JSONObject json = JSONUtil.buildJsonObject(true, "解除登录锁定成功!"); + String userId = StrutsParamUtils.getPraramValue("userId", ""); + try { + userManager.releaseLogonLock(userId); + } catch (SystemException e) { + e.printStackTrace(); + json = JSONUtil.buildJsonObject(false, e.getMessage()); + } catch (Exception e) { + e.printStackTrace(); + json = JSONUtil.buildJsonObject(false, "解除登录锁定失败:" + e.getMessage()); + } + StrutsResponseUtils.output(json); + } + } Index: forgon-core/src/main/java/com/forgon/security/service/UserManagerImpl.java =================================================================== diff -u -r32269 -r32300 --- forgon-core/src/main/java/com/forgon/security/service/UserManagerImpl.java (.../UserManagerImpl.java) (revision 32269) +++ forgon-core/src/main/java/com/forgon/security/service/UserManagerImpl.java (.../UserManagerImpl.java) (revision 32300) @@ -34,6 +34,7 @@ import com.forgon.directory.model.OrgUnit; import com.forgon.directory.model.OrgUserRelation; import com.forgon.directory.vo.LoginUserData; +import com.forgon.exception.SystemException; import com.forgon.log.model.Log; import com.forgon.log.service.LogManager; import com.forgon.runwithtrans.model.RunWithTransNewTask; @@ -884,4 +885,27 @@ return matcher.matches(); } + + @Override + public void releaseLogonLock(String userId) { + User user = this.get(userId); + if(user == null){ + throw new SystemException("用户不存在!"); + } + // 截止登录时间为空,或者服务器当前时间超过截止登录时间时,该用户没有被锁定 + if(user.getLockEndDate() == null || !user.getLockEndDate().after(new Date())){ + throw new SystemException("该用户没有被锁定,不需要解除登录锁定"); + } + + user.setLockEndDate(null); + this.modifyUserLockEndDateWithTransNewManager(user); + // 插入登录成功的记录 + UserLogonRecord userLogonRecord = new UserLogonRecord(); + userLogonRecord.setUserId(user.getId()); + userLogonRecord.setLogonName(user.getName()); + userLogonRecord.setPassword(user.getPasswd()); + userLogonRecord.setSucc(UserLogonRecord.SUCC_TRUE); + this.insertUserLogonRecord(userLogonRecord); + } + }