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);
+ }
+
}