授权
授权定义了用户在访问应用程序后能够或不能执行哪些操作(参见 ./authentication)。
Aptli 的授权模型融合了宽松与严格的双重特性,从而实现了极高的灵活性:
- 管理员权限——可通过用户设置查看(截图待添加)
- 通过成员资格实现的严格角色限制模型(截图待添加)
管理员权限
管理员权限采用许可制。这意味着必须向用户授予权限,但仅限于修改信息或变更状态。例如,拥有 usersUpdate 权限的用户可修改其他用户的某些个人资料详情,包括姓名、职位、部门等,但不包括电子邮件、密码、SSO 及验证日期等信息的变更。若未授予此权限,用户仅能编辑自身资料。
usersLogout 用于强制锁定或注销用户,usersDelete 用于删除用户账户。usersCreate 可恢复已删除账户或按上述字段限制创建全新账户。
工单权限使用 workOrders 前缀:workOrdersCreate、workOrdersUpdate、workOrdersDelete。(注:orders 是另一个独立的数据模型——请勿混淆两者。)
几乎所有数据模型都遵循此行为模式,仅有 3 项管理权限可覆盖所有数据模型:
appSettingSchemasModify:允许修改应用程序级设置,如允许的域名、超时设置及服务器信息adminRightsModify:允许用户共享管理权限并将其扩展至其他用户viewDeleted:允许用户查看已删除记录。此权限几乎无处不在,但可通过角色限制部分覆盖
角色限制
角色具有限制性。这意味着被分配到某个角色后,将无法查看或修改具有特定特征的记录。角色是由"角色限制"组成的集合,并包含"成员"。只有角色的"所有者"或拥有 RoleUpdate 管理权限的人员才能更改成员。
角色限制包含基础配置:模型、字段、比较条件、筛选值以及读取/编辑/创建/删除权限。例如,假设有某些资产不应被竞争承包商 A 和 B 查看。为防止 B 方访问其信息,请执行以下操作:
- 创建名为
承包商 A的角色,并添加角色限制,详细信息如下: - 将模型设置为 Point 以表示点要素
- 设置包含所有者等信息的字段(如
owner) - 设置比较条件为
= - 将过滤值设为
承包商 B - 将读取、编辑、创建、删除权限设为 true,表示用户无法查看或修改该内容
完成后,将承包商 A 的成员添加到该角色中,承包商 A 的成员将无法查看任何由承包商 B 作为所有者的内容。
管理员权限与角色限制的协同使用
默认情况下,除管理员外的所有用户均可查看全部内容,但无权修改全部内容。广泛授予的写入权限可通过记录进行限制,从而定义严格的流程控制机制,实现以下有用的权限分离:
- 按工作阶段划分(即防止提交工作报告的人员后续查看质量保证报告)
- 按资产类型划分(例如:杆塔、管道等基础设施与活动设备、电力电缆等由不同人员管理)
- 按物理与逻辑概念划分(例如:不同办公场所间的容量与消耗等关联关系,与办公场所本身的地理位置及特征属性)
为新用户自定义身份验证与授权
修改任何这些设置都需要用户配置文件中拥有"AppSettingSchemasModify"权限。该权限默认授予超级管理员,但也可由其他管理员共享。要查看用户拥有的管理权限,请在用户页面(http://[您的主机]/admin/users)查看其配置文件中的"管理权限"部分。
以下内容可进行自定义以覆盖默认设置:
- 新用户角色
- 新用户管理员权限