需求分析-场景

假设需要为公司设计一个人员管理系统,并为各级领导及全体员工分配系统登录账号。有如下几个要求:

1、权限等级不同

  公司领导登录后可查看所有员工的信息,部门领导登陆后之可查看本部门员工的信息,员工登录后只能查看自己的信息

2、访问权限不同

  如公司领导登录后,可查看员工薪水分布界面,而员工则不能看到;

3、操作权限不同

  如系统管理员可以在信息发布界面进行增删改查发布信息,儿普通员工之可以在信息发布界面进行查看,不能修改、删除和新增。

功能分析

1. 登录一个系统,基本都需要用户输入用户名、密码;

2. 每个用户的角色不同,则其访问权限一般也不同,如:

  系统管理员:可以查看所有界面;

  普通用户: 只能查看部分界面;

3. 不同的用户,即使可以查看同样的界面,但在该界面上课进行的操作权限也不同,如:  

  用户1:可以在界面1上进行增删改查;

  用户2:只可以在界面上1上查看,不具备增删改功能;

4. 不同用户基本都对应不同角色,如:用户1、用户2分别对应管理员角色、操作员角色,角色之间也存在权限等级的差异,如:
      角色1:对应省级管理员;==>可以查看该省下的所有学校信息;
      角色2:对应市级管理员;==>可以查看该市下的所有学校信息;
      角色3:对应县级管理员;==>可以查看该县下的所有学校信息;
不管是省、市、县哪个系统管理员,他们可访问的界面都是相同的(即访问权限相同),且在每个界面上可进行的操作权限也相同的,不同的是每个管理员角色可以访问的学校个数和学校范围不同,这里称这种不同为:权限等级不同;
 
总结:
从上面的分析中,主要涉及到以下几个概念:
1.角色:
       如系统管理员角色,系统操作员角色,普通用户角色;
       不同的角色,其访问权限是不同的,即可访问的模块(界面)集合是不同的;
       角色的权限等级也不同,权限等级如:公司领导、部分领导、普通员工;
2. 模块:(界面)
    模块就是指具体的界面,每个模块上又有不同的操作,如增删改查;
3. 访问权限:确定角色可以访问的模块(界面)集合;
4. 操作权限:确定可以在各模块(界面)上进行的操作集合,如增删改查;
5. 权限等级:即确定角色可以访问的范围,如:
         角色1:权限等级为公司领导,则可以查看公司所有员工信息;
         角色2:权限等级为部门领导,则只可以查看该部门所有员工信息。

数据库设计

Django -- 权限初识的更多相关文章

  1. django权限控制

    django 权限机制的实现: http://blog.igevin.info/posts/django-permission/

  2. [Python学习] Django 权限控制

    本文为大家讲解 Django 框架里自带的权限模型,从理论到实战演练,带领大家了解 Django 里权限是怎么一回事. 一.主要内容 1.什么是权限管理? 2.Web 权限 3.Django 权限机制 ...

  3. Django权限机制的实现

    Django权限机制的实现 1. Django权限机制概述 权限机制能够约束用户行为,控制页面的显示内容,也能使API更加安全和灵活:用好权限机制,能让系统更加强大和健壮.因此,基于Django的开发 ...

  4. django权限管理(Permission)

    什么是权限管理 权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自 己被授权的资源 权限管理好比如钥匙,有了钥匙就能把门打开,但是权限设置是有级别之分的,假如这个 系统有多 ...

  5. django权限之二级菜单

    遗漏知识点 1.构建表结构时,谁被关联谁就是主表,在层级删除的时候,删除子表的时候,主表不会被删除,反之删除主表的话,字表也会被删除, 使用related_name=None   反向查询,起名用的 ...

  6. 一.8.django权限管理/drf权限管理

    1.什么是权限管理: .权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源 .权限管理好比如钥匙,有了钥匙就能把门打开,但是权限设置是有级别之分的,假如这个系 ...

  7. Django权限控制进阶

    一.一级菜单的排序 我们用字典存放菜单信息,而字典是无序的,当一级菜单过多时可能会出现乱序情况,因此需要给一级菜单排序 1.给一级菜单表的model中加一个weight权重的字段 ,权重越大越靠前 w ...

  8. Django 权限管理

    对于Django而言,虽然自带了一些基本的通用权限限制,但现实中,可能我们更希望自己去定义业务权限划分 Django对于权限这块的部分验证方法 user = request.user user.is_ ...

  9. 【Python】django权限管理

    参考:http://www.cnblogs.com/esperyong/ 参考:https://docs.djangoproject.com/en/1.8/topics/auth/default/#t ...

随机推荐

  1. Apache禁止或允许固定IP访问特定目录、文件、URL

    1. 禁止访问某些文件/目录 增加Files选项来控制,比如要不允许访问 .inc 扩展名的文件,保护php类库: <Files ~ "\.inc$"> Order a ...

  2. 剑指offer24:判断一个二叉树的后序遍历序列是否为二叉搜索树的后序遍历序列

    public static boolean isBSTSequence(int[] s,int l, int r) { if (s == null || r <= 0) return false ...

  3. hdu-5816 Hearthstone(状压dp+概率期望)

    题目链接: Hearthstone Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Other ...

  4. Hive操作笔记

    hive库清表,删除数据 insert overwrite table lorry.bigdata select * from lorry.bigdata where 1=0 hive的simple模 ...

  5. NSCLIENT++可以采集的指标

    Documentation   Information   Commands/Modules   CheckDisk   CheckFileSize   CheckDriveSize   CheckF ...

  6. hadoop2.6.0中自定义分割符

    最近在学习hadoop,用的hadoop2.6.0 然后在学习编写mapreduce程序时,发现默认对文件的输入是采用每行进行分割,下面来分析下改变这个分割方式的办法: 来看看默认是怎样实现的:

  7. 02_SQliteOpenHelper介绍&oncreate方法介绍

    file:///D:/BaiduNetdiskDownload/adt-bundle-windows-x86_64_20140101/adt-bundle-windows-x86_64_2014010 ...

  8. [zoj3195]Design the city(LCA)

    解题关键:求树上三点间的最短距离. 解题关键:$ans = (dis(a,b) + dis(a,c) + dis(b,c))/2$ //#pragma comment(linker, "/S ...

  9. sublime取消自动升级提示

    1.进入Preferences -> Settings-User ,添加 "update_check": false, 2.重启Sublime.

  10. Web.config文件中关于Cookie安全性的考量和设置

    cookie的内容,如图所示: HTTP response header: Set-Cookie: <name>=<value>[; <Max-Age>=<a ...