Aptli

授权

授权定义了用户在访问应用程序后能够或不能执行哪些操作(参见 ./authentication)。

Aptli 的授权模型融合了宽松与严格的双重特性,从而实现了极高的灵活性:

  1. 管理员权限——可通过用户设置查看(截图待添加)
  2. 通过成员资格实现的严格角色限制模型(截图待添加)

管理员权限

管理员权限采用许可制。这意味着必须向用户授予权限,但仅限于修改信息或变更状态。例如,拥有 usersUpdate 权限的用户可修改其他用户的某些个人资料详情,包括姓名、职位、部门等,但不包括电子邮件、密码、SSO 及验证日期等信息的变更。若未授予此权限,用户仅能编辑自身资料。

usersLogout 用于强制锁定或注销用户,usersDelete 用于删除用户账户。usersCreate 可恢复已删除账户或按上述字段限制创建全新账户。

工单权限使用 workOrders 前缀:workOrdersCreateworkOrdersUpdateworkOrdersDelete。(注:orders 是另一个独立的数据模型——请勿混淆两者。)

几乎所有数据模型都遵循此行为模式,仅有 3 项管理权限可覆盖所有数据模型:

  • appSettingSchemasModify:允许修改应用程序级设置,如允许的域名、超时设置及服务器信息
  • adminRightsModify:允许用户共享管理权限并将其扩展至其他用户
  • viewDeleted:允许用户查看已删除记录。此权限几乎无处不在,但可通过角色限制部分覆盖

角色限制

角色具有限制性。这意味着被分配到某个角色后,将无法查看或修改具有特定特征的记录。角色是由"角色限制"组成的集合,并包含"成员"。只有角色的"所有者"或拥有 RoleUpdate 管理权限的人员才能更改成员。

角色限制包含基础配置:模型、字段、比较条件、筛选值以及读取/编辑/创建/删除权限。例如,假设有某些资产不应被竞争承包商 A 和 B 查看。为防止 B 方访问其信息,请执行以下操作:

  • 创建名为 承包商 A 的角色,并添加角色限制,详细信息如下:
  • 将模型设置为 Point 以表示点要素
  • 设置包含所有者等信息的字段(如 owner
  • 设置比较条件为 =
  • 将过滤值设为 承包商 B
  • 将读取、编辑、创建、删除权限设为 true,表示用户无法查看或修改该内容

完成后,将承包商 A 的成员添加到该角色中,承包商 A 的成员将无法查看任何由承包商 B 作为所有者的内容。

管理员权限与角色限制的协同使用

默认情况下,除管理员外的所有用户均可查看全部内容,但无权修改全部内容。广泛授予的写入权限可通过记录进行限制,从而定义严格的流程控制机制,实现以下有用的权限分离:

  • 按工作阶段划分(即防止提交工作报告的人员后续查看质量保证报告)
  • 按资产类型划分(例如:杆塔、管道等基础设施与活动设备、电力电缆等由不同人员管理)
  • 按物理与逻辑概念划分(例如:不同办公场所间的容量与消耗等关联关系,与办公场所本身的地理位置及特征属性)

为新用户自定义身份验证与授权

修改任何这些设置都需要用户配置文件中拥有"AppSettingSchemasModify"权限。该权限默认授予超级管理员,但也可由其他管理员共享。要查看用户拥有的管理权限,请在用户页面(http://[您的主机]/admin/users)查看其配置文件中的"管理权限"部分。

检查管理员权限

以下内容可进行自定义以覆盖默认设置:

  • 新用户角色
  • 新用户管理员权限