预期效果:
超级管理员登录后,可以进行所有操作,可以看到所有菜单栏;
普通用户登录后只有部分权限,只能看到部分菜单栏或操作按钮。
主要模块:
- express:node框架
- express-hbs:模板引擎
- node_acl:权限管理系统的核心
- mongodb:数据库
- sails-mongodb:连接mongodb的引擎
前端:
Amaze ui、angular、Z-Tree
源码地址:https://github.com/wuwanyu/aclDemo
运行前提:
安装mongodb数据库
运行
1. 数据准备
(1) 将源代码目录下sql文件夹的内容,拷贝到mongodb安装目录的bin目录下
(2) 命令行方式进入mongodb安装目录的bin目录下,运行 mongorestore -d acltest acltest.dmp/acltest,将数据导入acltest表
2.安装依赖包:npm install
3. 运行:npm start
4.在浏览器输入: http://localhost:3000(用户名/密码:admin/admin 或 user/123)
部分截图
接口文档
资源相关:
1.保存资源树
2.获取资源列表
角色相关:
1.添加角色
2.修改角色
3.查询角色列表
4.删除角色
4.查询角色详情(含角色的权限列表)
用户相关:
1.用户登录
2.用户退出
3.添加用户
4.修改用户
5.删除用户
6.获取用户列表
7.查询用户详情(含用户权限列表)
8.给用户添加角色
9.获取用户角色
资源
1.保存资源树(增加、修改、删除都是这个方法)
1 2 3 4 5 6 7 8 9 10 |
|
2.获取资源列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
|
角色
1.查询角色列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
2.修改角色
1 2 3 4 5 6 7 8 9 10 11 12 |
|
3.查询角色详情(含角色的权限列表)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
4.删除角色
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
5.给角色添加资源
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
用户相关:
1.用户登录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
2.用户退出
1 2 3 4 5 6 7 |
|
3.添加用户
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
4.修改用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
5.查询用户详情(含用户权限列表)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
6.获取用户列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
7.删除用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
8.获取用户权限
1 2 3 4 5 6 7 8 9 10 |
|
9.给用户添加角色
1 2 3 4 5 6 7 8 9 10 11 12 |
|
10.给用户添加角色
1 2 3 4 5 6 7 8 9 10 |
|
nodejs开源权限管理框架参考:
node_acl(1373星):https://github.com/OptimalBits/node_acl
优点:支持express
Connect Roles(564星): https://github.com/ForbesLindesay/connect-roles
点评:支持express,还需要引入passport.js
rbac(309星 ):https://github.com/CherryProjects/rbac
优点:支持express