新增角色身份切换功能,根据角色展示菜单。

This commit is contained in:
thinkgem
2019-07-07 17:19:20 +08:00
parent b5fd643070
commit b465206cf8
2 changed files with 36 additions and 4 deletions

View File

@@ -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";
}

View File

@@ -33,5 +33,20 @@
<% }else{ %>
<li class="mt10"></li>
<% } %>
<% if(user.roleList.~size > 0){ %>
<li class="divider"></li>
<% var roleCode = @ObjectUtils.toStringIgnoreNull(session.roleCode, ''); %>
<li class="dropdown-header mb5">${text('选择身份')}<% if(isNotBlank(roleCode)){ %>
<i class="fa fa-close pointer" title="${text('清除设置')}" onclick="location='${ctx}/switchRole'"></i><% } %></li>
<% for(var role in user.roleList){ %>
<li>
<a href="${ctx}/switchRole/${role.roleCode}">
<i class="fa fa-${roleCode == role.roleCode
? 'check-' : ''}circle-o"></i> ${role.roleName}
</a>
</li>
<% } %>
<% } %>
<li class="mt10"></li>
</ul>
</li>