权限
在系统中,权限通过模块+动作来产生,模块就是整个系统中的一个子模块,可能对应一个菜单,动作也就是整个模块中(在B/S系统中也就是一个页面的所有操作,比如“浏览、添加、修改、删除”等)。将模块与之组合可以产生此模块下的所有权限。
权限组
为了更方便的权限的管理,另将一个模块下的所有权限组合一起,组成一个“权限组”,也就是一个模块管理权限,包括所有基本权限操作。比如一个权限组(用户管理),包括用户的浏览、添加、删除、修改、审核等操作权限,一个权限组也是一个权限。
角色
权限的集合,角色与角色之间属于平级关系,可以将基本权限或权限组添加到一个角色中,用于方便权限的分配。
用户组
沈阳OA办公系统中权限管理设计,将某一类型的人、具有相同特征人组合一起的集合体。通过对组授予权限(角色),快速使一类人具有相同的权限,来简化对用户授予权限的繁琐性、耗时性。用户组的划分,可以按职位、项目或其它来实现。用户可以属于某一个组或多个组。
通过给某个人赋予权限,有4种方式(参考飞思办公系统)
一些事情做到了,比较顺畅,而大部分还算失败了,只能磨很久,讲很多很多,争论很多,直至全部讲清楚,赢得所谓的“胜利”。
看起来这里有个错误,就是“技术人员应该选择自己熟悉的技术,而不是所谓‘更好’的技术。”。实际上,自然这也考虑到了,所以在设计之初,也这么解决,加上其他想法,大致是这么实现的:
- 许多个小系统,而不是一个大系统
- 所有小系统每次开发到发布周期都应该能控制在三个月以内,最多半年
- 统一信道进行消息中转,而不是P2P
- 所有业务系统都是热插拔的
- 使用Nuget,公用代码而不共同维护代码
- 很多数据库,而不是一个大数据库
- 先有对象,再有表
|