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 9511c46f..6ad72def 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 @@ -360,12 +360,29 @@ public class LoginController extends BaseController{ @RequiresPermissions("user") @RequestMapping(value = "switch/{sysCode}") public String switchSys(@PathVariable String sysCode) { - User user = UserUtils.getUser(); - if (user.isSuperAdmin() && StringUtils.isNotBlank(sysCode)){ - Session session = UserUtils.getSession(); + Session session = UserUtils.getSession(); + if (StringUtils.isNotBlank(sysCode)){ session.setAttribute("sysCode", sysCode); - UserUtils.removeCache(UserUtils.CACHE_AUTH_INFO+"_"+session.getId()); + }else{ + session.removeAttribute("sysCode"); } + UserUtils.removeCache(UserUtils.CACHE_AUTH_INFO+"_"+session.getId()); + return REDIRECT + adminPath + "/index"; + } + + /** + * 切换角色菜单(仅超级管理员有权限) + */ + @RequiresPermissions("user") + @RequestMapping(value = {"switchRole","switchRole/{roleCode}"}) + public String switchRole(@PathVariable(required=false) String roleCode) { + Session session = UserUtils.getSession(); + if (StringUtils.isNotBlank(roleCode)){ + session.setAttribute("roleCode", roleCode); + }else{ + session.removeAttribute("roleCode"); + } + UserUtils.removeCache(UserUtils.CACHE_AUTH_INFO+"_"+session.getId()); return REDIRECT + adminPath + "/index"; } diff --git a/modules/core/src/main/resources/views/themes/default/modules/sys/sysIndex/topMenuUser.html b/modules/core/src/main/resources/views/themes/default/modules/sys/sysIndex/topMenuUser.html index cfc8e1f5..aeaa3c20 100644 --- a/modules/core/src/main/resources/views/themes/default/modules/sys/sysIndex/topMenuUser.html +++ b/modules/core/src/main/resources/views/themes/default/modules/sys/sysIndex/topMenuUser.html @@ -33,5 +33,20 @@ <% }else{ %>
  • <% } %> + <% if(user.roleList.~size > 0){ %> +
  • + <% var roleCode = @ObjectUtils.toStringIgnoreNull(session.roleCode, ''); %> + + <% for(var role in user.roleList){ %> +
  • + + ${role.roleName} + +
  • + <% } %> + <% } %> +
  • \ No newline at end of file