新增角色身份切换功能,根据角色展示菜单。
This commit is contained in:
@@ -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";
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user