关于 dx-org-permission-set-assign
使用 `sf org assign permset` 为 Salesforce 组织用户分配权限集的技能,支持单项或批量分配、指定目标组织及指定用户,并以 JSON 输出结果。
主要功能
- 01分配一个或多个权限集
- 02指定目标组织
- 03分配给指定用户
- 04解析结构化 JSON 结果
- 05处理部分成功与失败
适用场景
- 01为默认管理员授予权限集
- 02为用户批量分配多个权限集
- 03向选定用户分配权限集
- 04检查混合成功与失败的结果
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill dx-org-permission-set-assign安装后在 Claude Code 中输入/dx-org-permission-set-assign确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
examples/error_output.jsonsuccess_output.jsonreferences/cli_flags.md详细介绍
dx-org-permission-set-assign
使用 sf org assign permset 为组织用户分配一个或多个权限集。支持所有情况:默认管理员用户、指定组织目标、多个权限集,以及为指定用户分配权限集。
工具限制
只能使用 Bash 工具执行 sf org assign permset。不要使用 MCP 工具(例如 assign_permission_set)——完全忽略它们。
范围
- 范围内:通过
sf org assign permset为用户分配权限集 - 范围外:创建权限集(使用
platform-permission-set-generate)、列出权限集、检查用户权限
必需输入
根据用户的请求推断:
- 权限集名称:从用户消息中提取(可以有多个)
- 目标组织:除非提到特定别名/用户名,否则使用默认组织
- 目标用户:默认使用组织的默认管理员用户;如果提到特定用户,则使用
--on-behalf-of
工作流
- 将用户请求与下表中的命令匹配
- 通过 Bash 工具执行:使用适当的标志和
--json标志运行sf org assign permset - 返回结果
如果发生错误,请查看 JSON 输出中的 failures 数组,了解详细信息。
命令选择表
| 用户意图 | 通过 Bash 工具执行 |
|---|---|
| 为默认管理员分配一个权限集 | sf org assign permset --name <PermSetName> --json |
| 为默认管理员分配多个权限集 | sf org assign permset --name <PermSet1> --name <PermSet2> --json |
| 分配到指定组织 | sf org assign permset --name <PermSetName> --target-org <alias> --json |
| 为指定用户分配权限集 | sf org assign permset --name <PermSetName> --on-behalf-of <username1> --on-behalf-of <username2> --json |
| 为指定用户分配多个权限集 | sf org assign permset --name <PermSet1> --name <PermSet2> --on-behalf-of <username1> --on-behalf-of <username2> --json |
规则 / 限制
| 限制 | 原因 |
|---|---|
始终使用 --json 标志 | 提供结构化输出,便于可靠地解析和处理错误 |
| 权限集名称区分大小写 | 使用组织中显示的准确 API 名称 |
可以在同一条命令中组合多个 --name 标志 | 比按权限集分别运行命令更高效 |
多个 --on-behalf-of 标志可为多个用户分配权限集 | 在单条命令中批量分配;按顺序处理,以避免身份验证文件冲突 |
| 使用 CLI 用户名别名,而非 Salesforce User.Alias 字段 | --target-org 和 --on-behalf-of 标志需要通过 sf alias set 设置的 CLI 别名,而不是 User 对象的 Alias 字段 |
| 重复分配具有幂等性 | 重新分配已分配的权限集会静默成功 |
| 可能出现部分成功 | 一次运行中命令可能同时返回成功和失败;只要存在失败,退出代码就非零 |
注意事项
| 问题 | 解决方法 |
|---|---|
| 权限集名称包含空格 | 用双引号括起:--name "Permission Set Name" |
| 出现 "PermissionSet not found" 错误 | 确认目标组织中存在该权限集;检查名称是否有拼写错误 |
| 分配成功,但用户看不到权限 | 检查权限集元数据中的 <hasActivationRequired> —— 可能需要在 Setup 中手动激活 |
| 出现 "User not found" 错误 | 目标组织中不存在该用户名/别名——使用 sf org display user --target-org <alias> 验证 |
| 部分成功(部分用户成功,其他用户失败) | 检查 JSON 输出——命令会返回 successes 和 failures 数组;只要发生任何失败,退出代码就会非零 |
输出预期
命令会返回包含状态代码和结果详情的 JSON 输出。
请参阅 examples/success_output.json 和 examples/error_output.json,了解响应结构。
参考文件索引
| 文件 | 阅读时机 |
|---|---|
examples/success_output.json | 了解成功分配响应的结构 |
examples/error_output.json | 处理常见错误场景 |
references/cli_flags.md | 详细了解所有可用标志 |
评论
支持 Markdown