1. 基本概念

地球号基本概念

地球号架构图

地球号架构图
Figure: 地球号架构图

地球号是一个用户托管服务。其用户系统包含如下基本概念:应用,户群,角色,授权,用户。户群相当于用户群,一个应用只有一个户群。一个户群下可以设置好多角色,从而可以满足不同应用的复杂角色控制。

户群ugrp

户群是地球号用户的最高组织单位。可以理解成类似微信群/QQ群这样的用户组织。每个应用创建时要指定所绑定的唯一户群。打个比喻:地球上每个公民,都有一个id,每个id都可以加入不同的户群(同时拥有不同国籍)。

户群的概念是隔绝注册的,用户在一个户群里注册后,只能在这个户群登陆,不能在另一个户群登陆。只能在另一个户群注册后登陆。

  • 户群可以被设置公开或私有,公开的户群可以被公开搜索到。 允许来自其它户群的用户登录。私有的户群不允许来自其它的户群登录。

地球号内建一个特殊的户群:XdUaDuA,任何人都可以注册这个户群的none角色。从地球号官网注册的用户具备初始角色 dua:god 户群可以设置自己的应用授权列表,没有授权的应用是不可以登录注册这个户群的。

企业corp

店铺是地球号户群下的次级语义单位。可以理解为国家(虚拟概念)下面的企业。每个国家拥有多个企业,企业有不同类别。一个企业包含如下多种店铺。每种店铺有不同的

店铺shop

店铺是地球号户群下的次级语义单位。可以理解为国家(虚拟概念)下面的企业。每个国家拥有多个企业,企业有不同类别。一个店铺包含如下概念 店长:一个店铺可以有多个店长,店长黑白班可以倒班。 客户:客户有多种类别,可以通过等级和标签完成 服务人员:支撑这个系统运行的人员 销售商品:已有的在线资源,明码标价。两种商品 1:独占商品,用了,就没了。如床位,要配置添加。2:重复商品,比方说某节课有100各名额。 工单流水:除了销售已有资源外,店铺还可以应对并服务额外的工单,这叫销售服务。 仓库管理:除了商品,还有运维仓库, 用来存放运维用的产品。 成本核算:店铺运营的成本平衡,水电费,物业,损耗补充。 费用中心:收入和支出

店长是通过角色授权来的,跟用户可以授权某个人具有管理某个店的授权。

商品

商品包含多种商品

1:可以量销的商品. 床位就属于一种量销独占商品,一旦有人退房,就空出一个商品,店长可以设置床位处于维修或者预定。 这种商品有商品列表,有商品概述

<<<<<<< HEAD

2. 2:家政公司的商品是保姆,护工. 但这个不能放到商品表,因为它是人。

2:

店铺是地球号户群下的次级语义单位。可以理解为国家(虚拟概念)下面的企业。每个国家拥有多个企业,企业有不同类别。一个店铺包含如下概念 店长:一个店铺可以有多个店长,店长黑白班可以倒班。 客户:客户有多种类别,可以通过等级和标签完成 服务人员:支撑这个系统运行的人员 销售商品:已有的在线资源,明码标价。两种商品 1:独占商品,用了,就没了。如床位,要配置添加。2:重复商品,比方说某节课有100各名额。 工单流水:除了销售已有资源外,店铺还可以应对并服务额外的工单,这叫销售服务。 仓库管理:除了商品,还有运维仓库, 用来存放运维用的产品。 成本核算:店铺运营的成本平衡,水电费,物业,损耗补充。 费用中心:收入和支出

fb89cc1fefa9d34fd15ff26d11d010e0f22675a7

用户

用户是地球号的基本元素。地球号的用户注册即可称为地球号用户,注册过程可以显式注明自己是注册哪个户群的,也可以忽略,默认就会注册到dua群(以none角色存在)

角色

角色是户群里基本权力分配形式。角色之间通过授权来达到权力的层级管理。如:root可以授权超级管理员,超级管理员可以授权普通管理员,普通管理员可以授权特权会员等等.下面展示的就是一个阅读类网站的角色授权树。从中可以看出,超级管理员可以管理(授权/解授权)四种普通管理员:会员管理员,VIP管理员,审核管理员,客服管理员. 地球号授权系统是一个简单的授权系统,任何一个角色只能由另外一个角色授权,一个角色可以授权多个其它角色。如,god只能由root授权,none只能由god授权。这样简单的授权系统可以模拟大部分权限树。对于某些特殊的需求,可以迂回满足:例如,如果root希望自己能授权none,那么root可以先给自己授权成god,然后再去授权none.

配对

1:配对需求1,医生配老人,老人配护工,护士,护理。 2:配对需求2,老人配床位 3:配对需求3,老人配设备 3:配对需求3,床位配设备 3:配对需求3,房间配设备

权限

权限是地球号里最晚添加的设计。当初地球号在设计的时候没有考虑权限。原因在于地球号的所有API都已经内置了权限。例如

  1. 超级管理员root拥有名下资源的所有权限
  2. 普通管理员god 拥有:在已有的户群下添加用户,拉黑用户,管理对象等权限。这意味着普通管理员拥有管理所有资源的权限,并且普通管理员的权限都是一样的。

在这样的需求下,根本不需要权限系统,只用角色就可以控制,所有API认角色不认权限。

为了支持灵活自由的权限系统,地球号加上了权限管理。用户可以定制自己的权限。即把自己的权限设计托管在地球号上。注意,此时地球号并不理解客户自己定义的权限,它仅仅保存这个权限。

那客户如何使用自己托管的权限呢:

客户在登陆的时候获得到自己的权限列表。它的权限列表也隐藏在获得的token里。客户可以用这些权限在前端选择性的显示和忽略页面和按钮等设计。

户群里基本权力分配形式。角色之间通过授权来达到权力的层级管理。如:root可以授权超级管理员,超级管理员可以授权普通管理员,普通管理员可以授权特权会员等等.下面展示的就是一个阅读类网站的角色授权树。从中可以看出,超级管理员可以管理(授权/解授权)四种普通管理员:会员管理员,VIP管理员,审核管理员,客服管理员. 地球号授权系统是一个简单的授权系统,任何一个角色只能由另外一个角色授权,一个角色可以授权多个其它角色。如,god只能由root授权,none只能由god授权。这样简单的授权系统可以模拟大部分权限树。对于某些特殊的需求,可以迂回满足:例如,如果root希望自己能授权none,那么root可以先给自己授权成god,然后再去授权none.

用户注册时会赋予用户初始户群和角色,这是用户的初始户群和角色。

graph TD; A[root]-->B[god]; B[god]-->C[超级管理员]; C[超级管理员]-->D[会员管理员]; C[超级管理员]-->E[VIP管理员]; C[超级管理员]-->F[审核管理员]; C[超级管理员]-->G[客服管理员]; D[会员管理员]-->H[none]; E[VIP管理员]-->I[vip]; F[审核管理员]-->J[审核员]; G[客服管理员]-->K[客服];

地球号里每个户群内建四个角色:zero(虚拟角色)/群主(root)/管理员(god)/普通(none)。其中zero是一个虚拟角色,仅用于占位。每个户群创建时都会初始化拥有这root,god,none3个角色,这四个角色的授权关系是: zeor->root->god->none root/god/none这三个角色被禁止删除,如果您不想使用某个角色,您可以忽略它。

graph TD; X[zero]-->A[root]; A[root]-->B[god]; A[root]-->C[god]; B[god]-->D[none]; B[god]-->E[none]; C[god]-->F[none]; C[god]-->G[none]; C[god]-->H[none]; C[god]-->I[none];
角色 名称 描述
root 群主,只有一个,仅仅拥有授权和管理god的权限。
god 仅次于群主的角色,可以有多个,数目不限。root自己默认是god。god是一个非常特殊的管理员角色,它的作用是管理一个或者多个店铺uzone。god相当于罗马时代每个行政区的总督,对于店铺内的用户拥有绝对的权限。root天然的god角色具有管理默认uzone的权限。,非root的god无法查看默认户群的用户
none 没有任何权限的户群注册人员,每个户群下的默认角色。它的授权者时god
anonymus 匿名 整个地球号只维持一个匿名用户,就是XdUaDuA户群的AnoNymuS用户。这个角色用于切仅仅用于匿名令牌里面的role字段

应用

应用,用户要创建应用才可以使用地球号。用户创建应用了,才可以把应用绑定给户群。目前,每个应用只支持一个户群。每个应用的登录控制有如下部分

  1. 应用可以配置,所绑定户群的什么角色可以登录本APP。

匿名用户 AnoNymuS

地球号全局定义中设置了一个特殊的用户:AnoNymuS。它名义上属于户群XdUaDuA。而实际代表了整个地球号系统里的所有未注册用户。

另外一个被废弃的想法是这样的:在角色系统中增加一个匿名角色(anonymus),与god,none,root并列。这样每个户群都应该有自己的匿名用户。听上去像是一简介优雅的解决方案。但其实很浪费,因为匿名用户既然没有在任何户群注册,那么它就没有必要属于哪个户群。

results matching ""

    No results matching ""