RBAC 用户管理规范

概念:每个user有多个accounts,每个account 有一个account binding,有多个roles和多个tasks

举个例子:某个用户现在manager,这是admin添加了另一个角色supervisor的角色给他,数据结构是这样的(HdLogin)

user{
accounts : [
{
type : "administrator" //可以抽象或具体 : administrator, manager
password : "1234",
roles :[
{
type: "manager",
roleTaskss : ",manager,supervisor,"
},
{
type: "supervisor",
roleTaskss : ",supervisor,"
}
],
accountBindings : [
{
type : "email",
primaryKey : "xxx@xxx"
} ]
}
]
}

*primaryKey是email format, 电话号码,webchat。。。

*灰色是之前的需求,保留而已
自动登入,在employer page 登入后,会有cookies,去到candidate page时,会自动登入。过程是发现有cookies同时type 是customer。如果在candidate 登出时,employer 也会自动登出。因为在登出后,在refresh又会自动登入,死循环很奇怪!

半自动登入,在employer page 登入后,会有cookies,去到candidate page时,点击登入,在这里看当下页面的业务逻辑,
如果是只有一个角色可以登入的话,就直接帮他登入
如果是2个角色,就会有一个选项让他选择哪个角色,
如果是选择的角色在HdLogin有记入的话,会自动登入 (cookies是属于当下界面)
如果是选者的角色是不在HdLogin的话,会需要自己登入

手动登入,意思是每一个页面的业务逻辑都是只有支持自己页面的cookies。
当登入candidate page时,再去到employer page,会查找HdLogin,结果会发现没有记入,然后要求登入

account Type 会记入抽象或具体 user administrator,staff,manager...
举个例子:当manager登入admin page,之后再去到前台page,
如果前台page是“自动登入”或“半自动登入”,首先会去HdLogin去查找看看cookies有没有当下的页面
如果有记入,就broadcast
如果没有记入,就看记入中的account type是不是如何业务逻辑。现在account type是administrator,是可以登入的,在购买房间时,会确定角色是不是manager(因为业务只支持administrator 的 manager可以购买),然后完成!
但是如果是staff 呢?
举个例子:当staff登入admin page,之后在去前台page,
如果前台page是“自动登入”或“半自动登入”,首先回去HdLogin去查找看看cookies有没有当下的页面,
这时发现他的account type是administrator,是可以登入的,但是在购买房间时,资源会发现他不能访问,因为角色只有manager才可以购买

seek的概念,同个email,不同password
在结构上,user 是accounts的父层,但是在创建candidate email后再创建 employer email,是没有把这2个email在同个accounts!
完全是2个email。

roles的数据结构
举个例子:manager要操作supervisor的操作,这时必须roles.roleTaskss 添加一个supervisor。所有的manager就一定要有角色,不然会有bug!

roles :[
{
type: "manager",
roleTaskss : ",manager,supervisor,"
},
{
type: "supervisor",
roleTaskss : ",supervisor,"
}
],

 

概念 : 用户>角色>权限 的管理(Role-Based Access Control)的更多相关文章

  1. spring-boot-plus V1.4.0发布 集成用户角色权限部门管理

    RBAC用户角色权限 用户角色权限部门管理核心接口介绍 Shiro权限配置

  2. Azure ARM (16) 基于角色的访问控制 (Role Based Access Control, RBAC) - 使用默认的Role

    <Windows Azure Platform 系列文章目录> 今天上午刚刚和客户沟通过,趁热打铁写一篇Blog. 熟悉Microsoft Azure平台的读者都知道,在老的Classic ...

  3. Azure ARM (17) 基于角色的访问控制 (Role Based Access Control, RBAC) - 自定义Role

    <Windows Azure Platform 系列文章目录> 在上面一篇博客中,笔者介绍了如何在RBAC里面,设置默认的Role. 这里笔者将介绍如何使用自定的Role. 主要内容有: ...

  4. [.Net MVC] 用户角色权限管理_使用CLK.AspNet.Identity

    项目:后台管理平台 意义:一个完整的管理平台需要提供用户注册.登录等功能,以及认证和授权功能. 一.为何使用CLK.AspNet.Identity 首先简要说明所采取的权限控制方式.这里采用了基于角色 ...

  5. [认证授权] 6.Permission Based Access Control

    在前面5篇博客中介绍了OAuth2和OIDC(OpenId Connect),其作用是授权和认证.那么当我们得到OAuth2的Access Token或者OIDC的Id Token之后,我们的资源服务 ...

  6. java权限管理与用户角色权限设计

    java权限管理与用户角色权限设计 实现业务系统中的用户权限管理 B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器 ...

  7. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理

    这是本人第一次写,写的不好的地方还忘包含.写这个的主要原因是想通过这个来学习下EF的CodeFirst模式,本来也想用AngularJs来玩玩的,但是自己只会普通的绑定,对指令这些不是很熟悉,所以就基 ...

  8. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理10

    今天把用户的菜单显示和页面的按钮显示都做好了,下面先来个效果图 接下来说下我实现的方法: 首先我在每个方法前面都加了这个属性, /// <summary> /// 表示当前Action请求 ...

  9. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(21)-用户角色权限基本的实现说明

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(21)-用户角色权限基本的实现说明     ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框 ...

随机推荐

  1. 编写PHP规则

    PHP是运行在服务器端的语言,可以动态生成html页面.这篇博客介绍它的一些编码规则. 一.基本规则 1.PHP代码总是用<?php和?>包围,例如 <?php echo " ...

  2. HUSTOJ 2796 && SPOJ1811

    传送门:http://begin.lydsy.com/JudgeOnline/problem.php?id=2796 题解:后缀自动机,很裸,但是感觉对后缀自动机还不是特别理解,毕竟我太蒟蒻,等我精通 ...

  3. UVa 10148 - Advertisement

    题目大意:有一些广告牌,为了使跑步者看到固定数量的广告,设计所需租用的最少数量的广告牌. 其实就是区间选点问题:数轴上有n个区间[ai, bi],取尽量少的点,使得每一个区间都至少有一个点.首先对区间 ...

  4. OC强弱引用的使用规则

    强弱引用的唯一区别只是体现在对象的消亡上. 当一个对象不再有强引用指向它时,它就会被销毁. 弱引用不持有对象,不计入自动引入计数,所以不用考虑它销毁的问题.

  5. Delphi中上指定进程(进程名)

    procedure KillProcess(ExeName: string); const PROCESS_TERMINATE = $0001; //进程的PROCESS_TERMINATE访问权限 ...

  6. easyUI 添加排序到datagrid

    http://www.cnblogs.com/javaexam2/archive/2012/08/10/2632645.html

  7. pytho查找斐波那契序列中的值

    ''' 实现斐波那契序列,查找其中第N个数的值 ''' def FeiBSequence(list,N): length=len(list); i=0; while i<length: if N ...

  8. Codeforces374B

    B. Inna and Nine time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  9. 个人对现在大众对perl的偏见的一些见解

    最近我都在一些论坛和交流社区学习,发现很多人对perl有很大的偏见. 以我学习那么久的Perl来说吧,也算是有一些小经验了,所以我总结了大家对perl的偏见的原因,无非就是是下面两个的两个原因: 1. ...

  10. MongoDB基础之五:游标

    1.cursor(游标)是什么 ? 通俗的说,游标不是查询结果,而是查询的返回资源,或者接口. 通过这个接口,你可以逐条读取. 就像php中的fopen打开文件,得到一个资源一样, 通过资源,可以一行 ...