mcpField
G
generating-permission-set

generating-permission-set

github.com/forcedotcom安全1.1k4.0k 次安装1 天前更新
代码仓库

关于 generating-permission-set

面向 Salesforce 管理员和开发者,用于创建或编辑权限集元数据。它指导配置对象、字段、用户、应用、选项卡及可选的 Agent 访问,并检查常见部署错误。

主要功能

  1. 01定义权限集基本属性
  2. 02配置对象 CRUD 权限
  3. 03设置字段级安全性
  4. 04授予用户权限
  5. 05配置应用与选项卡可见性
  6. 06添加可选代码和 Agent 访问

适用场景

  1. 01为某个角色创建权限集
  2. 02授予指定对象和字段的访问权限
  3. 03配置应用和选项卡的可用性
  4. 04部署前检查元数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/forcedotcom/sf-skills --skill generating-permission-set

安装后在 Claude Code 中输入/generating-permission-set确认已加载。

详细介绍

何时使用此技能

在生成或编辑权限集元数据,或授予对象、字段、用户和应用权限时使用。

第 1 步:定义核心属性

首先定义所需的权限集属性:

<PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>YourPermissionSetName</fullName>
    <label>Display Name for Administrators</label>
    <description>Clear description of purpose and intended audience</description>
</PermissionSet>

命名约定:

  • 使用描述性 API 名称(例如,Sales_Manager_Access)

第 2 步:配置对象权限

为标准对象和自定义对象添加 CRUD 权限:

<objectPermissions>
    <allowCreate>true</allowCreate>
    <allowRead>true</allowRead>
    <allowEdit>true</allowEdit>
    <allowDelete>false</allowDelete>
    <modifyAllRecords>false</modifyAllRecords>
    <viewAllRecords>false</viewAllRecords>
    <viewAllFields>false</viewAllFields>
    <object>Account</object>
</objectPermissions>

第 3 步:设置字段级安全性

为敏感字段或自定义字段定义字段权限:

<fieldPermissions>
    <editable>true</editable>
    <readable>true</readable>
    <field>Account.SSN__c</field>
</fieldPermissions>

重要事项:

  • 必填字段绝不能出现在字段权限列表中。平台不允许为必填字段授予字段级安全性,这会导致部署失败。
  • 添加字段前,请根据对象元数据确认该字段存在且不是必填字段
  • 当字段元数据包含 <required>true</required> 时,该字段为必填字段:
  • 公式字段不可编辑
  • 主从关系字段在子(明细)对象上属于必填字段
<fields>
    <fullName>FieldName__c</fullName>
    <required>true</required>
</fields>
  • 字段引用使用 ObjectName.FieldName 格式
  • 如果用户需要编辑权限,请将 readable 和 editable 都设为 true;editable 表示同时具有 readable 权限
  • 如果要显示所有字段,也可以启用对象权限 "viewAllFields"

第 4 步:授予用户权限

为功能和能力添加系统级权限:

<userPermissions>
    <enabled>true</enabled>
    <name>ApiEnabled</name>
</userPermissions>
<userPermissions>
    <enabled>true</enabled>
    <name>RunReports</name>
</userPermissions>

常见权限:

  • ApiEnabled:API 访问权限
  • ViewSetup:查看“设置”菜单
  • ManageUsers:用户管理
  • RunReports:运行报表

以下权限需要经过安全审查:

  • ViewAllData:读取所有记录
  • ModifyAllData:编辑所有记录
  • ManageUsers:用户管理

第 5 步:配置应用和选项卡可见性

向用户显示应用和选项卡:

<applicationVisibilities>
    <application>Sales_Console</application>
    <visible>true</visible>
</applicationVisibilities>
<tabSettings>
    <tab>CustomTab__c</tab>
    <visibility>Visible</visibility>
</tabSettings>

应用可见性选项:

  • 可以为 true 或 false

选项卡可见性选项:

  • Visible:选项卡在“所有选项卡”页面上可用,并显示在关联应用的可见选项卡中。可以自定义。
  • Available:选项卡在“所有选项卡”页面上可用。个人用户可以自定义显示设置,使选项卡在任意应用中可见
  • None:不可见

重要——选项卡命名:

  • 自定义对象选项卡:必须包含 __c 后缀(例如,MyCustomObject__c)
  • 标准对象选项卡:使用对象名称,并添加 "standard-" 前缀(例如,standard-Account、standard-Contact)
  • 选项卡名称必须与对象的 API 名称完全一致

第 6 步:添加 Apex 和 Visualforce 访问权限(可选)

授予对自定义代码的访问权限:

<classAccesses>
    <apexClass>CustomController</apexClass>
    <enabled>true</enabled>
</classAccesses>
<pageAccesses>
    <apexPage>CustomPage</apexPage>
    <enabled>true</enabled>
</pageAccesses>

第 7 步:设置许可证和记录类型(可选)

指定许可证要求和记录类型可见性:

<license>Salesforce</license>
<hasActivationRequired>false</hasActivationRequired>
<recordTypeVisibilities>
    <recordType>Account.Business</recordType>
    <visible>true</visible>
    <default>true</default>
</recordTypeVisibilities>

第 8 步:设置 Agent 访问权限(可选)

为分配了此权限集的用户启用对 Agentforce Employee Agent 的访问权限:

Sales_Assistant_Agent true

字段要求:

  • agentName(必填):员工 Agent 的开发者名称
  • enabled(必填):设为 true 以授予访问权限,设为 false 以拒绝访问

重要事项:

  • Agent 名称必须与现有 Agentforce Employee Agent 的开发者名称一致

验证清单

部署前,请确认:

  • 已设置 fullName、label 和 description
  • 权限遵循最小权限原则
  • <fieldPermissions> 中没有必填字段
  • 没有重复权限
  • 没有冗长的注释

导致部署失败的原因

  • 必填字段上的字段权限:<fieldPermissions> 中的任何必填字段都会导致部署失败。必填字段不能设置 FLS;请完全省略。务必根据对象/字段元数据确认字段存在且不是必填字段,切勿臆测。
  • **API 名称不正确:**使用了错误名称或缺少后缀(例如,自定义对象、字段或选项卡缺少 __c)会导致失败。

部署

使用 Salesforce CLI 进行部署

评论

支持 Markdown