zoukankan      html  css  js  c++  java
  • 程序员的自我救赎---7.1:权限系统讲解

    《前言》

    (一) Winner2.0 框架基础分析

    (二)PLSQL报表系统

    (三)SSO单点登录

    (四) 短信中心与消息中心

    (五)钱包系统

    (六)GPU支付中心

    (七)权限系统

    (八)监控系统

    (九)会员中心

    (十) APP版本控制系统

    (十一)Winner前端框架与RPC接口规范讲解

    (十二)上层应用案例

    (十三)总结

    《权限系统讲解》

    在Winner2.0我们的权限系统是很老了,上次Jason看代码发现权限系统还是2006开发的。这也让我们萌生了对“权限系统”重构的念头。

    无奈呼工作一直很忙,没有时间去重构它。并且重构更多时候是在操作界面上的重构,以及使用MVC翻抄一遍,最重要的是现在的权限系统还比较坚挺,没出过什么问题。

    我们重点来说说权限系统的表设计,因为界面实在比较老,而且比较难看,如果我们重构之后我们再把他上到GitHub。

    权限系统的表结构是非常简单的,基本和所有市面上教科书的权限系统是一样的,主要有五张表组成:

    Trit_Role:角色表

    Trit_RoleMember:角色成员表;

    Trit_Function:功能表;

    Trit_FunctionMember:功能成员表;

    Trit_Right: 权限关联表;

    额外还有两张系统表: Tnet_RegInfo(用户表),Tsystem_App(项目表)

    这么说好像比较难理解,我们看一张图就清楚了:

    trit_role:角色表,该项目中有什么角色比如:商城_商品上架员、商城_订单管理员。 不同的角色能进入的界面是不同的。并且外键关联项目表指定是哪个项目的权限;

    trit_rolemember:角色成员表,为角色表的扩展表关联trit_role、关联用户表(nodeid),制定哪个用户拥有那个角色的身份;

    trit_function:功能表,指定该项目中有什么功能比如:商城_管理订单,商城_查看销售报表。关键关联项目表,多项目情况下每个项目的功能不同;

    trit_functionmember:功能成员表,为功能表的扩展表,制定某个功能具体能访问的页面路径;

    trit_right: 权限关联表,关联角色与功能;

    我们看到的权限系统可能有的比较复杂,我记得之前我们一直讲好的权限系统应该控制到按钮,如果是在Asp.net WebForm 中是不太好处理的,但是在MVC中我们使用特性类去验证一下

    还是比较好处理的,但是相应的程序要去查询一次“权限系统”自然体验感要慢一点。 

    这里关于是否要控制到按钮Winner这套权限系统的表结构是足够应对的,就看是否要支持到这一步了。我们现在开发项目中都没有去控制到按钮这个程度,总归是接触的项目不到这个层次。

    最后我还贴一下,权限系统的界面图吧,给大家看看2006年开发的权限系统界面长啥样

    什么成员关联,角色关联,功能管理 就不贴了。着实难看,我自己都接受不了。不过这个互查的界面和功能还是要说一下,因为这个非常好用。

    它可以更加提供的一个角色名称查询出这个 角色有什么功能,然反向查出那些用户有这些角色的身份。同理也可以正向查询哪个用户有哪些角色的身份。

    好了,差不多了。在下一篇《权限系统实际应用》中我再细讲一下,如何讲权限系统应用到每个项目中去。

    这里就不贴源码了,等项目重构了,我再上一份到GitHub。

    有兴趣一起探讨Winner框架的可以加我们QQ群:261083244。或者扫描左侧二维码加群。

  • 相关阅读:
    Day 29 作业/服务端实现接收客户端的连接并发
    Day 28 操作系统发展/进程
    Day 27 作业(FTP)
    Day 27 subprocess模块/粘包问题以及解决/UDP协议/socketserver
    Day 26 作业
    Day 26 互联网协议/Socket套接字
    Day 22 绑定方法和非绑定方法/isinstance/issubclass/反射/魔法方法/单例模式
    Day 21 作业
    Day 21 组合/封装/property特性/多态和多态性/抽象类/鸭子类型
    day 20 作业
  • 原文地址:https://www.cnblogs.com/demon28/p/8176452.html
Copyright © 2011-2022 走看看