用户至少要属于一种角色,一种角色可以包含多个用户,用户与角色的关系是多对多的关系。同角色与资源关系一样,需要建一张表来表示用户与角色之间的关系。
CREATE TABLE `acc_role` (
`acc_id` int(11) NOT NULL ,
`role_id` int(11) NOT NULL ,
PRIMARY KEY (`acc_id`, `role_id`)
账号分配角色页面如下:
//绑定分配角色按扭
$("#perrole").click("click", function() {
var cbox=grid.getSelectedCheckbox();
if (cbox.length != 1) {
parent.$.ligerDialog.alert("请选择一条数据");
return;
}
cbox=grid.selectRow();
dialog = parent.$.ligerDialog.open({
width : 500,
height : 410,
url : rootPath + '/background/account/accRole.html?id=' + cbox.id + '&accountName=' + encodeURI(encodeURI(cbox.accountName)) + '&roleName=' + encodeURI(encodeURI(cbox.roleName)),
title : "分配角色",
isHidden : false
});
});
说明:
1、分配角色按钮绑定事件,至少选择一条记录。
2、弹出对话框,显示角色列表。
<div class="topBtn">
<table class="table table-striped">
<tr>
<td width="65px" style="text-align: right;">账号名:</td>
<td>${accountName}</td>
</tr>
<tr>
<td style="text-align: right;">所属角色:</td>
<td>${roleName}</td>
</tr>
</table>
</div>
<div id="paging" class="pagclass"></div>
<div class="topBtn" style="text-align: center;">
<a class="btn btn-info" href="javascript:void(0)" onclick="sub()">保存</a>
<a class="btn btn-info" href="javascript:void(0)" onclick="closeWin()">关闭</a>
</div>
</div>
说明:
1、弹出分配角色页面对话框,展示角色列表是通过查询所有角色列表,然后通过初始化js渲染到页面。
2、点击保存绑定事件,需要至少选择一种角色,调用后端分配角色接口完成账号的角色分配。
$(function() {
grid = window.lanyuan.ui.lyGrid({
id : 'paging',
l_column : [ {
colkey : "id",
name : "id",
width : "50px"
}, {
colkey : "name",
name : "角色名"
}, {
colkey : "enable",
name : "是否禁用",
width:"70px"
},{
colkey : "description",
name : "描述"
} ],
jsonUrl : '${pageContext.request.contextPath}/background/role/queryAll.html',
checkbox : true,
usePage:false,
records : "roles",
height:"180px"
});
});
/**
* 账号分配角色
*/
@ResponseBody
@RequestMapping("addAccRole")
public Map<String, Object> addAccRole(Model model, String accountId,String ids) {
Map<String, Object> map = new HashMap<String, Object>();
try {
if(!Common.isEmpty(ids)){
String[] roleIds = ids.split(",");
roleService.addAccRole(accountId, Arrays.asList(roleIds));
}
map.put("flag", "true");
} catch (Exception e) {
map.put("flag", "false");
}
return map;
}
说明:
1、上送账号及该账号分配的角色列表。
2、账号分配角色的逻辑:先删除该账号的所有角色,然后在新增新上送分配的角色列表。
public void addAccRole(String accountId, List<String> ids) {
roleMapper.deleteAccountRole(accountId);
for (String roleId : ids) {
if (!Common.isEmpty(roleId)) {
RoleAccount roleAccount = new RoleAccount();
roleAccount.setAccountId(Integer.parseInt(accountId));
roleAccount.setRoleId(Integer.parseInt(roleId));
roleMapper.addAccRole(roleAccount);
}
}
}

软件定制及其他业务
请加微信号:13128600812
公众号:

178

被折叠的 条评论
为什么被折叠?



