diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/login/LoginHelper.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/login/LoginHelper.java index ed3a839..148e233 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/login/LoginHelper.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/login/LoginHelper.java @@ -83,6 +83,7 @@ public class LoginHelper { UserParty up = ups.iterator().next(); us.setPartyId(up.getPartyId()); us.setDeptId(up.getDeptId()); + us.setUserLevel(user.getLevel()); } return us; } diff --git a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/common/SwEnum.java b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/common/SwEnum.java index 79ab92a..4363ff4 100644 --- a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/common/SwEnum.java +++ b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/common/SwEnum.java @@ -379,4 +379,11 @@ public interface SwEnum { public static IntEnumBean LOCK = instance.addEnum(2, "已锁定"); public static IntEnumBean STOP = instance.addEnum(9, "已停用"); } + // 用户等级 + class UserLevel extends IntEnum { + public static UserLevel instance = new UserLevel(); + public static IntEnumBean inner = instance.addEnum(102100, "内部用户"); + public static IntEnumBean outer = instance.addEnum(102101, "外部用户"); + public static IntEnumBean pub = instance.addEnum(102102, "公众用户"); + } } diff --git a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/session/SessionManager.java b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/session/SessionManager.java index 9e0d621..6b97fab 100644 --- a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/session/SessionManager.java +++ b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/session/SessionManager.java @@ -2,6 +2,7 @@ package cc.smtweb.framework.core.session; import cc.smtweb.framework.core.cache.redis.RedisBroadcastEvent; import cc.smtweb.framework.core.cache.redis.RedisManager; +import cc.smtweb.framework.core.common.SwEnum; import cc.smtweb.framework.core.db.jdbc.IdGenerator; import cc.smtweb.framework.core.mvc.controller.IEditor; import org.apache.commons.lang3.StringUtils; @@ -23,9 +24,11 @@ public class SessionManager { public String login(UserSession userSession) { if (userSession != null) { String sid = RedisManager.PREFIX_SESSION + Long.toHexString(idGenerator.nextId()) + "_" + Integer.toHexString(new Random().nextInt()); - - redisManager.set(sid, userSession, RedisManager.SESSION_EXPIRE_SEC); - + if(userSession.getUserLevel() == SwEnum.UserLevel.pub.value){ + redisManager.set(sid, userSession, 0); + }else { + redisManager.set(sid, userSession, RedisManager.SESSION_EXPIRE_SEC); + } return sid; } diff --git a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/session/UserSession.java b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/session/UserSession.java index 6532740..e037d99 100644 --- a/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/session/UserSession.java +++ b/smtweb-framework/core/src/main/java/cc/smtweb/framework/core/session/UserSession.java @@ -1,6 +1,7 @@ package cc.smtweb.framework.core.session; import cc.smtweb.framework.core.common.SwConsts; +import cc.smtweb.framework.core.common.SwEnum; import cc.smtweb.framework.core.util.IpAddrUtil; import lombok.Getter; import lombok.Setter; @@ -28,6 +29,8 @@ public class UserSession implements Serializable { private String loginIp; // 用户ID private long userId; + // 用户等级 + private long userLevel = SwEnum.UserLevel.inner.value; // 当前机构ID private long partyId; // 当前部门