有些权限我称之为业务权限,这种权限和业务绑定,就不在平台底层的权限管理中处理了。举一个场景来解释这个问题。在赛事服务平台中,一个机构有多个业务员,业务员可以发展自己的合作学校,各个业务员之间不允许看各自的学校。业务员之上的管理人员可以查看所有学校。这一场景中,合作学校的数据是业务数据,平台底层是不感知的,所以不可能在平台级别的权限管理中进行定义。在平台级别只能区分出业务员和管理者,定义后在后台数据库中标记这两个角色为系统预制角色(即用户只能修改名称,不能删除)。

       业务系统中定义角色常量,例如业务员为Y,管理者为G。业务系统中,新建合作学校时,学校增加1个字段记录录入人员。查询接口中判断当前登录人员的角色,如果为Y(这些是平台接口基类的功能),则附加条件限定只能查本人的。

      业务系统里新增分配功能,管理者可以把合作学校转移个其他业务员。