大型系统后台设计——权限篇

为什么写这篇文章?

写这篇文章的目的有两个:一个原因是,由于最近将近两年都在接触大型的系统,我有幸作为一个软件实施方的一员,接触并了解了几个大型的项目,并自己也主·导设计了两款软件系统,我对于软件的后台设计有了一定程度的了解,有能力阐述清楚这个问题。另外一个原因是,曾经我作为一个软件小白,想要在网上找到相应的资料,发现,大部分的文章都来自与开发人员,他们偏向于从技术层面进行阐述,读起来晦涩难懂,很少从业务和原理上进行阐述,还有一部分文章阐述的层面较为浅显,浅尝辄止,并没有从整体到部分进行完整的阐述,我这篇文章力求简单明了,完整全面,任何人都通俗易懂。

系统后台一般包括哪些内容,有什么用处?

系统后台一般是管理者进行系统管理的一个模块。根据软件的不同用途,其管理的内容各不相同。举个简单的例子:今日头条、腾讯视频、头条号等内容平台,一般其后台都会有内容审核功能,用户账号管理、权限分配等等。GUC用户发布一篇文章,后台进行审核,通过后,方可进行展示。

我今天所阐述的系统后台,指的是更为核心的东西,是一个系统的心脏。指的是权限数据管理,这一个部分的设计最为复杂也是系统设计最难最基础的部门。

权限包括两个部分:一个是操作权限,一个是数据权限。 

操作权限又包括两个部分:一个是菜单权限,另外一个是按钮权限。

菜单权限。举个例子来说:我们使用同一个办公软件系统,你是HR,你有招聘模块的菜单,可以进行招聘相关的操作,我是财务,我有费用报销模块的菜单,而你没有。这样我们的菜单是不一定的。我们都可以使用办公软件,但是我们的职位不同,所以分配的菜单是不一样的。

按钮权限。举个例子:我们两个都是人资部门的人,你是招聘专员,我是人资经理。我们虽然都有招聘菜单,但是你没有招聘需求审批的按钮,你没有相应的权限操作,只有我可以进行招聘需求的审批。

数据权限,说起来就比较简单容易理解了,比如拿快消行业来说,我是安徽区的省区经理,你是江苏大区的省区经理,我们职位相同,我们都是省区经理,我们拥有的操作权限也是一样的,但是我们看到的数据是不一样的,我是安徽的省区经理,只能允许看到安徽省的销售数据,江苏地区的销售数据我是看不到的,同理,江苏区的省区经理也是一样的。所有这些,都是可以通过数据权限进行控制的。

怎么进行权限的控制?

我主要介绍两种常见的权限控制方法,也是比较常用的权限设计方式,一种是对于小型企业的,一般只有几百人的那种,另外一种涉及到工作流的系统产品,人数众多。两种设计方式之外还会有许多的变种,这里就不一一说了。

第一种:用户—角色—权限

用户——角色的设计方式是最为简单的设计方式。他的设计原理是:把操作权限分配给角色,如下图1,这样新增一个新的角色以后,就会给这个新增的角色分配相应的操作权限,包括操作按钮和操作菜单。

图1

上图为某公司的新增角色页面,从图中可以看到,勾选相应的菜单和按钮,则该角色就有用了菜单和按钮的操作权限,没有勾选,则没有改权限。

图2

通过部门赋予用户数据权限,如图2 。新建一个新的用户时,必须要给这个用户选择一个权限角色,同时,在授权部门模块,选择其所属的部门,部门就决定了其数据范围。通过这两个操作,一个新的用户就具备了操作权限和数据权限。

第二种:用户—职位—角色—权限

相比于第一种的权限设计方案,多用于小型系统,没有涉及到工作流的情况;第二种权限设计方案多应用于一些中大型系统中,如CRM系统、OA系统等等。第二种和第一种相比较,中间多了一层职位,设计思路也是不一样的。

第二种设计思路如下:

角色控制操作权限,和第一种一样,如果涉及到工作流,可以进行单独定义工作流角色,也可以和权限角色相同,不进行单独定义。

角色——操作权限设计

职位是增加的一层,职位与角色关联,也就是说,一个角色下面对应多个职位,一个职位只能对应一个角色,这样职位就拥有了操作权限的属性。同时,组织机构与职位关联,组织机构决定系统的数据权限。这样职位就拥有了操作权限和数据权限。

职位管理

最后在把职位挂到相应的用户,这样用户在登录该账号时,就同时拥有操作权限和数据权限。

用户—职位

这里有一点需要说明,用户和职位是一对一的关系,也就是说,一个萝卜一个坑,不可以把一个职位挂给多个用户。

这样设计有什么好处呢?

举个例子说吧:当一个员工离职了,采用第二种设计方式,只需要停用该员工的用户账号,把职位移除,如果新来一个员工替代他,只需要给新员工新建一个用户账号,同时把职位挂给他就OK了,不需要重新分配数据权限和操作权限。如果采用第一种设计方式:需要停用员工账号,新来员工开通账号需要重新分配数据权限。

再举个例子吧:当两个员工A和B进行跨部门职位调岗时,该怎么操作呢?第一种方式:A和B的职位去掉,同时对调就行或者把该部门空缺职位分配给A和B,不需要重新分配数据权限。第二种方式:A和B要同时进行数据权限的重新分配。

如果有考虑有工作流的情况,就需要考虑流程节点处理对象,可以按照工作流角色、职位和具体用户三个维度进行配置,第二种可以很好地满足,第一种就无法满足,只能按照具体人来定义和角色来处理,当一个人调岗变动时,工作流审批节点可能也要进行调整,而第二种设计方式就不需要进行调整。

此外,对于,有相应人员编制的企业来说,可以保证职位的固定,只会有用户的增减,职位可以始终保持不变,这样编制就得以控制了。

综上:如果是设计小型系统并且没有涉及到工作流的情况,第一种设计方案:用户—角色的权限设计方案比较简单;如果是中大型的系统并且涉及到工作流的情况,则第二种设计方案:用户—职位—角色 的设计方案比较好。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容