跳转到内容

6.1 角色与权限

本节规定本系统的访问控制模型。适用于管理员配置授权,亦作为其他各节权限要求的判定依据。

a) 角色固定,不可自定义。 五个角色对应车间中实际存在的五类职责。 可自定义角色的系统在实践中会退化为每人一个角色,失去审计意义;

b) 范围可变。 同一角色可仅作用于某个机组或某个程序库;

c) 人员与令牌适用同一套规则。 不存在越权令牌。

角色与权限的对应关系按表 6-2 的规定。

表 6-2 角色与权限矩阵

权限 只读 操作工 编程员 审批员 管理员
programs.read 查阅程序与元数据
programs.read.released 仅查阅已发布版本
programs.content.view 查阅、下载正文
programs.write 建程序、传版本、建分配
versions.submit 提交审批
approvals.decide 批准、驳回
deployments.send.released 下发已发布版本
deployments.send.proveout 下发试制版本
drift.disposition 处置机边修改
machines.read 查阅机台与文件状态
machines.files.restore 还原快照
machines.files.adopt 采纳未受管文件
admin 用户、令牌、Webhook、审计

ᵃ 具备完整读权限 programs.read 的角色隐含具备仅读已发布版本的能力。

五个角色的对应岗位与职责范围按表 6-3 的规定。

表 6-3 角色职责

角色 对应岗位 职责范围
只读 生产计划、班组长 查阅程序与机台,不可查阅正文,不可执行任何变更
操作工 车间工位 查阅已发布版本,向本机组机床下发正式版本,不可查阅正文
编程员 工艺工程师 编写程序、提交审批、下发(含试制)、处置机边修改、还原快照与采纳文件
审批员 工艺主管、质量工程师 查阅正文、批准或驳回。不可编写,不可下发
管理员 系统管理员 上述全部,另含用户、令牌、Webhook 与审计管理

每条授权由「角色 × 范围」构成,范围类型按表 6-4 的规定。

表 6-4 授权范围类型

范围 作用对象
全局 全部对象
机组 该机组内的机台,及与之相关的下发、机边修改处置、快照操作
程序库 该程序库内的程序、版本与审批

一名用户可持有多条授权,其有效权限为各条授权的并集。

用户与授权

图 6-1 用户与授权页面

以赵莉为例,其授权为「编程员 · 试制程序库」与「编程员 · 钻攻中心组」两条, 各项操作的判定结果按表 6-5 的规定。

表 6-5 授权判定示例

操作 判定结果 原因
在试制程序库上传新版本 程序库范围覆盖
在量产程序库上传新版本 范围不覆盖,返回 403
将试制库的程序下发至钻攻 01 机组范围覆盖
将试制库的程序下发至立加 01(加工中心组) 机组范围不覆盖,返回 403
处置钻攻 01 上的机边修改 机组范围覆盖
批准本人创建的版本 不具备 approvals.decide

访问控制决定操作是否被允许,程序库审批策略决定放行所需的人数。两者相互独立:

a) 具备 approvals.decide 但程序库要求 2 人审批时,单次批准仅计一票;

b) 程序库启用「禁止自审自批」时,即使具备权限,作者本人的批准也不计入。

审批策略的配置见 5.2

服务令牌适用与人员账号完全相同的角色与范围模型。令牌特有的两项属性 (可代理身份、高危需操作人)见 5.9

表 6-6 权限相关错误码

状态码 含义 排查方向
403 当前角色或范围不覆盖该目标对象 检查用户的授权范围
409 权限满足,但对象当前的生命周期状态不允许该操作,例如下发草稿版本 检查对象状态