2 weixin 39391823 weixin_39391823 于 2017.07.17 16:44 提问

新人请教下各位大神关于权限管理的问题

像图上这样,下面的分配权限完全没思路
有哪位以前做过这样类似的模块吗
有的话麻烦教教我或者让我看看源码
感激不尽!图片说明图片说明图片

4个回答

showbo
showbo   Ds   Rxr 2017.07.17 17:19
已采纳

easyui还是自己写的UI?这个不难吧。。

上面的表格选择按钮新增个属性存储已经分配权限的id,然后点击的时候获取这个属性,然后对比下面列出的权限然后勾上对应的权限就行了,大概代码如下,为了操作方便直接导入jquery了。



<script type="text/javascript" src="https://cdn.bootcss.com/jquery/1.7.1/jquery.min.js"></script>
<table>
    <tr><td><input type='checkbox' /></td><td>用户编码</td><td>用户名</td><td>备注</td><td>权限</td></tr>
    <tr><td><input type='checkbox' /></td><td>用户编码1</td><td>用户名1</td><td>备注1</td><td><a href="#" power="1,2,3">选择</a></td></tr>
    <tr><td><input type='checkbox' /></td><td>用户编码2</td><td>用户名2</td><td>备注2</td><td><a href="#" power="4,5">选择</a></td></tr>
    <tr><td><input type='checkbox' /></td><td>用户编码3</td><td>用户名3</td><td>备注3</td><td><a href="#" power="5">选择</a></td></tr>
</table>
<br /><br />
<input type="button" id="btnSave" value="分配" />
<table id="tbPower">
    <tr><td><input type='checkbox' /></td><td>权限编码</td><td>权限名称</td></tr>
    <tr><td><input type='checkbox' value="1" /></td><td>1</td><td>权限名称1</td></tr>
    <tr><td><input type='checkbox' value="2" /></td><td>2</td><td>权限名称2</td></tr>
    <tr><td><input type='checkbox' value="3" /></td><td>3</td><td>权限名称3</td></tr>
    <tr><td><input type='checkbox' value="4" /></td><td>4</td><td>权限名称4</td></tr>
    <tr><td><input type='checkbox' value="5" /></td><td>5</td><td>权限名称5</td></tr>
    <tr><td><input type='checkbox' value="6" /></td><td>6</td><td>权限名称6</td></tr>
</table>
<script>
    $('a[power]').click(function () {
        var pw = $(this).attr('power').split(',');//获取power属性并拆分,不懂你权限怎么存储的,如果不是用逗号分隔注意修改分隔符号
        var cbs = $('#tbPower :checkbox');//获取权限表的checkbox
        cbs.prop('checked', false);//去掉勾选
        //遍历此用户的权限进行勾选
        for (var i = 0; i < pw.length; i++) cbs.filter('[value="'+pw[i]+'"]').prop('checked', true);
        return false;
    });
</script>
weixin_39391823
weixin_39391823 回复showbo: 好的,谢谢大佬
2 个月之前 回复
showbo
showbo 回复UKnowImJin: 那你就按照这个思路弄就行了,权限用逗号分隔开,存储权限的id。这个demo直接就完全符合你要求了,只是数据库你要自己弄了
2 个月之前 回复
weixin_39391823
weixin_39391823 自己写的ui,就因为刚学没多久,点击复选框分配权限那块不知道怎么下手
2 个月之前 回复
Zhanjr
Zhanjr   2017.07.17 16:56

数据库权限表 userid-权限id-0/1
菜单加载时查下数据库 0不显示 1显示

Zhanjr
Zhanjr 回复UKnowImJin: 点击选择按钮可以发送ajax请求,请求发userid就可以,然后将返回的数据进行复选框的回填
2 个月之前 回复
Zhanjr
Zhanjr 回复UKnowImJin: 每一个复选框都有一个id啊,获取被选中的,转成json传给后台
2 个月之前 回复
weixin_39391823
weixin_39391823 回复Zhanjr: 没有,我对这个不理解的地方在于点击复选框分配权限这一块
2 个月之前 回复
Zhanjr
Zhanjr 回复UKnowImJin: 有问题的话可以继续回复,如果对你有帮助麻烦点下采纳
2 个月之前 回复
Zhanjr
Zhanjr 回复UKnowImJin: 然后是权限的限制,一般直接体现在该模块是否可视,所以在用户进行菜单加载的时候要查询用户权限表,该用户id对应的权限id,以及该权限id的授权情况(0/1)。如果是0则该模块不加载(即不显示)。如果是1正常加载
2 个月之前 回复
Zhanjr
Zhanjr 回复UKnowImJin: ok,学习的过程还是自己深入好,我大概讲一下啊。首先有一个权限表,对应着权限id,编号(可以直接是id),名称。然后是用户权限表,对应着用户id,权限id及权限的拥有(0/1)。权限分配有这两个表一般就够了
2 个月之前 回复
weixin_39391823
weixin_39391823 老哥,我还是个新人,你这样......我......
2 个月之前 回复
Yubu_
Yubu_   2017.07.17 17:30

是前端问题还是后端代码,有什么问题吗?权限管理就是数据表比较多,搞清楚几张表的关系,理清操作流程,也不是很难的。。

Yubu_
Yubu_ 回复UKnowImJin: 这个问题的难点是多表关系,这个搞清楚了就行了。。。难道是不知道怎么从前台往后台传数据吗?看楼上你们在讨论怎么传数据
2 个月之前 回复
Yubu_
Yubu_ 回复UKnowImJin: 用户表,权限表,角色表,用户角色中间表,角色权限中间表,搞清楚这几张表的关系,就知道怎么往表里面写数据了。。分配权限就是往表里面写数据吧。。给角色分配权限,给用户分配角色。。然后在权限控制的时候进行多表联合查询,检查用户是否拥有某项权限。。。
2 个月之前 回复
weixin_39391823
weixin_39391823 后端,不知道怎么分配权限....
2 个月之前 回复
github_38823514
github_38823514   2017.07.18 11:35

我就做的权限系统。几张表关系搞清楚,就很容易做了

weixin_39391823
weixin_39391823 这算是回答嘛老姐=_=
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片