diff --git a/modules/core/src/main/java/com/jeesite/common/shiro/filter/FormFilter.java b/modules/core/src/main/java/com/jeesite/common/shiro/filter/FormFilter.java index 3f04e1f7..8a3b0abc 100644 --- a/modules/core/src/main/java/com/jeesite/common/shiro/filter/FormFilter.java +++ b/modules/core/src/main/java/com/jeesite/common/shiro/filter/FormFilter.java @@ -6,6 +6,7 @@ package com.jeesite.common.shiro.filter; import com.jeesite.common.codec.DesUtils; import com.jeesite.common.codec.EncodeUtils; +import com.jeesite.common.collect.ListUtils; import com.jeesite.common.collect.MapUtils; import com.jeesite.common.config.Global; import com.jeesite.common.lang.ObjectUtils; @@ -16,7 +17,9 @@ import com.jeesite.common.shiro.realm.BaseAuthorizingRealm; import com.jeesite.common.web.CookieUtils; import com.jeesite.common.web.http.ServletUtils; import com.jeesite.modules.sys.entity.Log; +import com.jeesite.modules.sys.entity.Role; import com.jeesite.modules.sys.entity.User; +import com.jeesite.modules.sys.utils.CorpUtils; import com.jeesite.modules.sys.utils.LogUtils; import com.jeesite.modules.sys.utils.UserUtils; import com.jeesite.modules.sys.utils.ValidCodeUtils; @@ -39,6 +42,7 @@ import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -428,6 +432,38 @@ public class FormFilter extends org.apache.shiro.web.filter.authc.FormAuthentica data.put("title", Global.getProperty("productName")); return data; } + + /** + * 获取登录页面数据 + * @author ThinkGem + */ + public static Map getLoginSuccessData(User user, Session session) { + Map data = MapUtils.newHashMap(); + data.put("user", user); // 设置当前用户信息 + data.put("demoMode", Global.isDemoMode()); + data.put("useCorpModel", Global.isUseCorpModel()); + data.put("currentCorpCode", CorpUtils.getCurrentCorpCode()); + data.put("currentCorpName", CorpUtils.getCurrentCorpName()); + data.put("msgEnabled", Global.getPropertyToBoolean("msg.enabled", "false")); + data.put("sysCode", session.getAttribute("sysCode")); + data.put("roleCode", session.getAttribute("roleCode")); + data.put("title", Global.getProperty("productName")); + List> roleList = ListUtils.newArrayList(); + String desktopUrl = null; + for (Role role : user.getRoleList()){ + Map roleMap = MapUtils.newHashMap(); + roleMap.put("roleCode", role.getRoleCode()); + roleMap.put("roleName", role.getRoleName()); + roleMap.put("isShow", role.getIsShow()); + roleList.add(roleMap); + if (desktopUrl == null && StringUtils.isNotBlank(role.getDesktopUrl())) { + desktopUrl = role.getDesktopUrl(); + } + } + data.put("roleList", roleList); + data.put("desktopUrl", desktopUrl != null ? desktopUrl : Global.getConfig("sys.index.desktopUrl")); + return data; + } public void setAuthorizingRealm(BaseAuthorizingRealm authorizingRealm) { this.authorizingRealm = authorizingRealm; diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java index 90560d58..c5d76f76 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java @@ -14,9 +14,7 @@ import com.jeesite.common.web.BaseController; import com.jeesite.common.web.CookieUtils; import com.jeesite.common.web.http.ServletUtils; import com.jeesite.modules.sys.entity.Menu; -import com.jeesite.modules.sys.entity.Role; import com.jeesite.modules.sys.entity.User; -import com.jeesite.modules.sys.utils.CorpUtils; import com.jeesite.modules.sys.utils.PwdUtils; import com.jeesite.modules.sys.utils.UserUtils; import io.swagger.annotations.Api; @@ -190,20 +188,7 @@ public class LoginController extends BaseController{ // 获取当前会话对象,并返回一些数据 Session session = UserUtils.getSession(); - model.addAttribute("user", user); // 设置当前用户信息 - model.addAttribute("demoMode", Global.isDemoMode()); - model.addAttribute("useCorpModel", Global.isUseCorpModel()); - model.addAttribute("currentCorpCode", CorpUtils.getCurrentCorpCode()); - model.addAttribute("currentCorpName", CorpUtils.getCurrentCorpName()); - model.addAttribute("msgEnabled", Global.getPropertyToBoolean("msg.enabled", "false")); - model.addAttribute("sysCode", session.getAttribute("sysCode")); - model.addAttribute("title", Global.getProperty("productName")); - for (Role role : user.getRoleList()){ - if (StringUtils.isNotBlank(role.getDesktopUrl())) { - model.addAttribute("desktopUrl", role.getDesktopUrl()); // 设置当前用户信息 - break; - } - } + model.addAllAttributes(FormFilter.getLoginSuccessData(user, session)); // 是否是登录操作 boolean isLogin = Global.TRUE.equals(session.getAttribute(BaseAuthorizingRealm.IS_LOGIN_OPER)); diff --git a/modules/core/src/main/resources/views/modules/sys/sysIndex.html b/modules/core/src/main/resources/views/modules/sys/sysIndex.html index c309a2e8..14637c8f 100644 --- a/modules/core/src/main/resources/views/modules/sys/sysIndex.html +++ b/modules/core/src/main/resources/views/modules/sys/sysIndex.html @@ -18,8 +18,7 @@ var bodyClass = 'fixed noscroll2 sidebar-mini ' + sidebarCollapse;
<% } %> -
+