zoukankan      html  css  js  c++  java
  • 十二、基于Django实现RBAC权限管理

    一、RBAC概述

    RBAC(Role-Based Access Control,基于角色的访问控制),通过角色绑定权限,然后给用户划分角色。

    从企业的角度来说,基本上是按照角色来划分职能。比如,CEO,具有公司全局的权限;部门经理,具有部门全局的权限;部门主管,具有部门部分的权限;普通员工,具有部门一小部分权限。

    不同的角色,能够获取的资源是不一样的,所以RBAC就是按照这个思维为公司建设权限系统。

    角色的引入,让权限管理非常灵活。

    例如:某个员工要离职了,替换他的是一个新员工,这时你需要一一的告诉该新员工他应该做什么,他不能做什么,当工作项非常多的时候,这将是非常繁琐的过程,且非常容易出错。如果你把这个职位定义为某个角色,且为这个角色分配固定的权限,不管来多少新人,不管什么职位,只要他对号入座,权限自然就根据角色分配好。当新员工升职后,比如升职成主管或经理,你这时只是角色变换,权限自动分配给他。

    二、流程图

    大概流程图如下:

    1、人员属于某个角色,首先给他分配角色,例如:总监、经理、主管、助理等;

    2、人员赋予角色后,则给他分配权限,不同的角色,规定有不同的权限。比如:总监级别,能够增删改查,无所不能;而经理级别,只能增改查,如果需要删除,则需要总监审批;主管只有增加和查看,修改需要向经理申请,让经理审批。

    3、不同的权限,实际上是对应数据库中的某张表,也就是Django中的某个model。

    三、效果图

    人员角色分配:

    实现效果:

    1、登录

    2、展示权限页面

     经理登录后,具备增删改查权限。

     主管登录后,具备增改查权限。

    职员登录后,具备查看权限。

    四、实现过程

    实现流程图:

    1、人员登录后,先验证用户是否OK;

    2、验证用户OK后,则根据人员属于什么角色,进行权限获取,并写入session中;

    3、用户登录成功,进入index页面,则根据用户session中的权限,展示不同的页面,正所谓:千人千面;

    4、用户根据不同的页面,进行不同的操作。

  • 相关阅读:
    alt、title和label
    css3-transform
    word break和word wrap
    聊聊svg
    JS严格模式
    JS提前声明和定义方式
    js跨域
    IE7append新的元素自动补充完整路径
    HTML5摇一摇
    基于jQuery仿uploadify的HTML5图片上传控件jquery.html5uploader
  • 原文地址:https://www.cnblogs.com/skyflask/p/10293052.html
Copyright © 2011-2022 走看看