跳到主要内容

应用用户、角色与运行页登录

App user 表示“现在是谁在操作这个 App”。用户、角色和登录状态都属于当前 App,用于显示操作员身份,以及决定页面中的哪些内容可见或可操作。

本文只讲 App 内的用户与角色。需要选择其他账号时,先阅读账号与权限边界

当前权限模型

  • 新建 App 只有不可删除的系统 Admin 角色,没有默认 App user,也没有默认密码。
  • 每个 App user 只能选择一个角色,并可单独启用或禁用。
  • 没有任何已启用 App user 时,App 不要求 App user 登录。
  • App Admin 在当前 App 内匹配所有角色,但不会获得 App 之外的权限。
  • 支持角色控制的 Component 可以根据当前 App user 决定内容是否可见或可操作。
  • 页面显示条件只调整界面体验,不能替代 Object、Query、文件或设备动作自己的授权。

配置应用角色

角色应表示稳定职责,而不是具体姓名。例如:

角色 ID显示名称适合表达的职责
Operator操作员日常查看与操作
Supervisor班组长审核与参数确认
Maintenance维护人员诊断与维护入口
Admin管理员App 内全部角色分支
  1. 打开当前 App 的 Settings → 用户/角色
  2. 应用角色中点击新增角色
  3. 输入唯一且稳定的角色 ID,再填写用户可读名称。
  4. 保留系统 Admin 角色。它的 ID 不能修改,也不能删除。
  5. 点击保存

Component 使用角色 ID 判断权限。显示名称可以调整,但修改角色 ID 后,应同步检查所有 Component 权限和相关高级源码。源码用法见高级:页面源码开发

配置 Component 权限

在 Page 中选中支持角色控制的 Component,然后在 Inspector 的权限区域配置允许的角色和未授权时的表现。

  • 允许的角色为空:所有用户都可以使用。
  • 选择多个角色:匹配任意一项即可;Admin 始终允许。
  • 未授权时隐藏:不显示该 Component,也是默认行为。
  • 未授权时禁用:保留显示,但禁止其中的交互。

CurrentUser 保持在不会被自身角色规则隐藏的区域,确保用户始终能切换账号。以上行为只控制 UI,不能替代敏感操作自己的授权。自定义 Component 的源码权限转发见高级:页面源码开发

删除角色会提升仍引用它的用户

在设置页删除非系统角色时,仍属于该角色的用户会改为 Admin。删除前先把这些用户迁移到预期角色,保存前再逐项核对。

创建应用用户

  1. 仍在 Settings → 用户/角色中,转到应用用户并点击新增用户
  2. 输入唯一用户名和非空密码。
  3. 为用户选择一个角色。
  4. 保持启用,或关闭它以阻止该用户登录。
  5. 点击保存

新用户必须设置密码。编辑已有用户时,密码框留空表示保留原密码;输入新密码会替换旧密码。Theseus 当前只要求密码非空,生产环境仍应使用组织认可的强密码和安全交付渠道。

保存只更新项目。要让运行页使用新的用户和角色,先 Stop App,再重新 Build,随后 Start。每次交付新版本都会结束已有的 App user 会话,用户需要重新登录。

在页面中加入 CurrentUser

在需要显示当前操作员或提供账号切换入口的 Page 中加入 CurrentUser Component。

CurrentUser 会显示当前 App user,并在自己的对话框中完成登录、切换和退出。切换成功后,运行页会刷新,使页面中的角色判断立即使用新账号;Preview 只更新当前预览会话。显示文案和是否显示角色可以按 Page 需要配置;直接编写源码时参见高级:页面源码开发

CurrentUser 只管理当前 App 的 App user。把它放在页面中容易找到且不受角色限制的位置,确保操作员始终可以登录、切换或退出。

验证配置

部署后,至少验证以下场景:

场景成功表现
没有已启用 App userApp 不要求 App user 登录
普通 App user 登录CurrentUser 显示正确用户名和角色;权限只匹配该角色
App Admin 登录CurrentUser 显示 App 管理员;App 内所有角色判断都通过
用户被禁用该用户不能再次登录,已有身份不再有效
密码或角色改变重新部署并登录后使用新配置,旧 App user 会话不再有效
当前角色不在 Component 的允许列表中按设置隐藏或禁用,不影响 CurrentUser 入口

请在真实运行页而不是 Design 中验收角色分支。Preview 适合提前检查交互,但最终仍要以真实 App user 登录后的运行页结果为准。

常见问题

已保存用户,运行页却没有变化

运行页仍在使用旧版本。Stop App,重新 Build,再 Start。仅在 Settings 中保存用户不会刷新已经交付的版本。

新用户无法登录

确认用户已启用、用户名完全一致,并检查是否在最后一次修改后重新 Build 和 Start。需要更换密码时,在 Settings → 用户/角色中为该用户输入新密码,再按 Stop → Build → Start 重新交付。

修改角色后,页面显示不符合预期

确认用户选择的是正确角色 ID,并检查相关 Component 的权限设置。显示名称相似不代表角色 ID 相同。删除角色后还要确认相关用户没有被改为 Admin;涉及高级源码时按页面源码开发检查引用。

找不到原生元素的权限编辑器

原生元素没有独立权限分组;需要统一的可见或禁用行为时,使用支持权限设置的 Component。真正执行敏感操作时,仍应在对应能力边界再次授权。

安全边界

  • Component 角色控制页面中的显示和交互,不是设备动作、Query、Object 方法或文件操作的强制授权。
  • 限制工作区、仓库和交付文件的访问权限,不要在截图、文档或聊天中共享真实 App user 密码。
  • 用户离职或换岗后及时禁用账号,并控制 App Admin 的数量。
  • 修改用户、密码或角色后,用真实运行页和真实角色重新验收。
  • 页面身份不能替代急停、安全控制器、工艺互锁、设备保护或后端业务授权。