新增角色身份切换功能,根据角色展示菜单。
This commit is contained in:
@@ -360,12 +360,29 @@ public class LoginController extends BaseController{
|
|||||||
@RequiresPermissions("user")
|
@RequiresPermissions("user")
|
||||||
@RequestMapping(value = "switch/{sysCode}")
|
@RequestMapping(value = "switch/{sysCode}")
|
||||||
public String switchSys(@PathVariable String 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);
|
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";
|
return REDIRECT + adminPath + "/index";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,5 +33,20 @@
|
|||||||
<% }else{ %>
|
<% }else{ %>
|
||||||
<li class="mt10"></li>
|
<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>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
Reference in New Issue
Block a user