zoukankan      html  css  js  c++  java
  • express搭建权限管理系统

    express搭建权限管理系统

    权限管理,是管理系统中的常见组件。通常需要定义资源,把资源调配给用户,通过判断用户是否有权限增删改查来实现。

    初衷:

    使用express开发过的项目大大小小加在一起也有二十多个了,之前做的各个项目都是独立存在的。最近领导建议说把这些小项目整合到一个大的平台上,给各部门开权限,让他们在一个平台上进行操作。这样做的好处,首先是便于项目管理,其次是节约开发成本。但好像目前使用nodejs做权限管理的资料并不多,这里特意分享出来,仅供参考。

    一开始在node_acl、Connect Roles、rbac这几个框架中徘徊,最终选择的node_acl框架,但node_acl只帮你做了权限管理的一部分工作,只保存用户、角色、资源三者 之间的关联关系,用户、角色、资源本身并没有保存。而我们要做的就是把用户、角色、资源的增删改查补齐,就是一个完整的权限管理系统了。

    预期效果:

    超级管理员登录后,可以进行所有操作,可以看到所有菜单栏;
    普通用户登录后只有部分权限,只能看到部分菜单栏或操作按钮。

    主要模块:

    • 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.获取用户角色

    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

  • 相关阅读:
    学习数据结构基础
    epoll
    pthread_create
    设置套接字选项
    5中I/O模型
    数据仓库一些整理(列式数据库)
    mysql分区方案的研究
    订单表的分库分表方案设计(大数据)
    从源码角度理清memcache缓存服务
    性能,不是不重要,而是,它没有可维护性重要
  • 原文地址:https://www.cnblogs.com/wuwanyu/p/7008713.html
Copyright © 2011-2022 走看看