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. 分析java堆

    内存溢出(OutOfMemory) OOM 堆溢出 直接内存溢出 永久区溢出

  2. 华硕A450c详细清灰拆机教程

    很久都想写点东西,但又无从下笔. 上次把自己的笔记本清了灰,这次有时间就整理一下,随便作为我的第一次随笔. 准备:笔记本(我的是华硕A450c),拆机工具(螺丝刀等) 温馨提示:要慢点 1,先翻开笔记 ...

  3. 正确的 Composer 扩展包安装方法

    问题说明 我们经常要往现有的项目中添加扩展包,有时候因为文档的错误引导,如下图来自 这个文档 的: composer update 这个命令在我们现在的逻辑中,可能会对项目造成巨大伤害. 因为 com ...

  4. 线程(thread)

    线程(thread): 现代操作系统引入进程概念,为了并发(行)任务 1.进程之间的这种切换代价很高 2.通信方式的代价也很大基本概念: 1.线程是比进程更小的资源单位,它是进程中的一个执行路线(分支 ...

  5. Google Chrome调试js代码

    你 是怎么调试 JavaScript 程序的?最原始的方法是用 alert() 在页面上打印内容,稍微改进一点的方法是用 console.log() 在 JavaScript 控制台上输出内容.嗯~, ...

  6. HDU-1430-素数回文

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1431 这题之前做过,又不会做了, 思路先直接暴力,输入a=5 b=500000000得到最大的值为9 ...

  7. SVG的a链接

    SVG的a链接: <%@ page language="java" contentType="text/html; charset=UTF-8" page ...

  8. JavaScript的4种this调用模式

    方法调用模式:函数调用模式:构造器调用模式:apply调用模式: 方法调用模式: 当一个函数被保存为对象的一个属性时,我们称它为一个方法.当一个方法被调用时,this被绑定到该对象. 函数调用模式: ...

  9. Linux笔记(十一) - 文件系统管理

    (1)文件系统查看命令:df [选项] [挂载点]-a 显示所有文件系统信息,包括特殊文件系统,如/proc /sysfs-h 使用习惯单位显示容量,如KB,MB或GB-T 显示文件系统类型-m 以M ...

  10. Docker环境中部署DzzOffice 1.2.5.2

    整体思路: 1.官方获取mysql.php+apache镜像: 2.基于php+apache,创建DzzOffice镜像: 3.启动mysql镜像: 4.启动DzzOffice镜像,链接mysql镜像 ...