租户管理员支持绑定角色,让不同的租户可拥有不同的菜单。

This commit is contained in:
thinkgem
2018-12-15 23:33:11 +08:00
parent 2de5300ae5
commit c21949d733
4 changed files with 44 additions and 3 deletions

View File

@@ -30,7 +30,9 @@ import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import com.jeesite.common.web.BaseController;
import com.jeesite.modules.sys.entity.EmpUser;
import com.jeesite.modules.sys.entity.Role;
import com.jeesite.modules.sys.entity.User;
import com.jeesite.modules.sys.service.RoleService;
import com.jeesite.modules.sys.service.UserService;
import com.jeesite.modules.sys.utils.UserUtils;
@@ -46,6 +48,8 @@ public class CorpAdminController extends BaseController {
@Autowired
private UserService userService;
@Autowired
private RoleService roleService;
@ModelAttribute
public User get(String userCode, boolean isNewRecord) {
@@ -84,6 +88,10 @@ public class CorpAdminController extends BaseController {
user.setCorpName_(StringUtils.EMPTY); // 租户名称
}
}
// 获取当前用户所拥有的角色
Role role = new Role();
role.setUserCode(user.getUserCode());
model.addAttribute("roleList", roleService.findListByUserCode(role));
// 操作类型addCorp: 添加租户; addAdmin: 添加管理员; edit: 编辑
model.addAttribute("op", op);
model.addAttribute("user", user);
@@ -135,6 +143,7 @@ public class CorpAdminController extends BaseController {
}
}
userService.save(user);
userService.saveAuth(user);
// 如果修改的是当前用户,则清除当前用户缓存
if (user.getUserCode().equals(UserUtils.getUser().getUserCode())) {
UserUtils.clearCache();

View File

@@ -120,6 +120,11 @@
</div>
</div>
</div>
<div class="form-unit">${text('分配角色')}</div>
<div class="pl10 pb20">
<table id="roleGrid"></table>
<#form:hidden name="userRoleString"/>
</div>
<#form:extend collapsed="true" />
</div>
<div class="box-footer">
@@ -146,6 +151,9 @@ $("#inputForm").validate({
}
},
submitHandler: function(form){
// 获取选中角色
$("#userRoleString").val(roleGrid.dataGrid('getSelectRows').join(','));
// 提交表单
js.ajaxSubmitForm($(form), function(data){
js.showMessage(data.message);
if(data.result == Global.TRUE){
@@ -163,4 +171,29 @@ $('#corpCode_').change(function(){
$('#loginCode').val('admin'+$(this).val()).valid();
}
});
//加载角色列表
var roleGrid = $("#roleGrid").dataGrid({
url: '${ctx}/sys/role/treeData',
postData: [
<%// {name:'userType',value:'employee'}, // 指定用户类型的角色 %>
<%// {name:'ctrlPermi',value:'2'} // 过滤可管理的角色 %>
{name:'isAll',value:'true'} <% // 显示所有角色(与上方两个条件互斥) %>
],
columnModel: [
{header:'${text('角色名称')}', name:'name', sortable:false, width:100, align:"center"},
{header:'${text('角色编码')}', name:'id', sortable:false, width:100, align:"center"}
],
showCheckbox: true,
autoGridHeight: function(){
return 'auto';
},
autoGridWidth: function(){
return $('#inputForm .box-body').width()-20;
},
ajaxSuccess: function(){
<% for (role in roleList!){ %>
roleGrid.dataGrid('setSelectRow', '${role.roleCode}');
<% } %>
}
});
</script>

View File

@@ -3,7 +3,7 @@
<div class="box box-main">
<div class="box-header">
<div class="box-title">
<i class="fa icon-user"></i> 系统管理员
<i class="fa icon-user"></i> ${@Global.getConfigToBoolean('user.useCorpModel', 'false') ? '租户' : '系统'}管理员
</div>
<div class="box-tools pull-right">
<a href="#" class="btn btn-default" id="btnSearch" title="查询"><i class="fa fa-filter"></i> 查询</a>

View File

@@ -198,8 +198,7 @@
<script>
$("#inputForm").validate({
submitHandler: function(form){
<% if(op == 'add' || op == 'auth') {%>
// 获取选中角色
<% if(op == 'add' || op == 'auth') { // 获取选中角色 %>
$("#userRoleString").val(roleGrid.dataGrid('getSelectRows').join(','));
<% } %>
js.ajaxSubmitForm($(form), function(data){