蓝缘基础框架项目-账号分配角色

用户至少要属于一种角色,一种角色可以包含多个用户,用户与角色的关系是多对多的关系。同角色与资源关系一样,需要建一张表来表示用户与角色之间的关系。

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

公众号:

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张先生程序猿

谢谢您的打赏,我会持续创作下去

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值