Salesforce自定义权限简介
2024-08-24 19:49:10
自定义权限(Custom Permission)
Salesforce默认提供了多种方式设定用户的权限,比如简档、权限集等。在这些设定中,已经包括了系统中的对象、应用、字段、页面布局等组件,管理员或开发者只需要设定权限等级即可。
当管理员或开发者需要设定更灵活的权限时,上面的方法便可能无法满足。为了解决这个问题,Salesforce提供了自定义权限(Custom Permission),让管理员或开发者可以设定完全自定义的权限,然后根据这些权限设定灵活决定各个组件的权限。
自定义权限的设定
在设置界面搜索“自定义权限”,点击“自定义权限”链接,即可进入自定义权限一览表。
点击新建按钮,即可新建自定义权限。
从截图中可以看到,自定义权限和简档、权限集等不同,没有各种组件的权限设定,而是只有基本的几个属性。用户在设定这些属性值以后,一个自定义权限就添加完成了。
但是自定义权限不能单独分配给用户,而是要包含在简档或权限集中,相当于它们的一个组成部分。
自定义权限的使用
和简档、权限集不同,自定义权限本身并不包含对任何组件的任何权限设定。它就像一张空白的通行证,能通向哪里需要管理员或开发者来灵活设定。
自定义权限可以在多种情况下使用。现在假设系统中已经添加了一个名称为“Example_CP”的自定义权限。
验证规则
在创建验证规则时,需要在“错误条件公式”中插入各种条件。自定义权限便可以在此处使用。
比如:当用户没有名为“Example_CP”的自定义权限时,验证规则失败。那么可以在“错误条件公式”中这样写:“NOT($Permission.Example_CP)”。这样,当进行验证的用户没有被分配“Example_CP”自定义权限时,验证失败。
数据库查询
在SOQL中,可以使用CustomPermission和其他相关对象来查询自定义权限相关的信息。
比如:
-- 查询所有包含了Example_CP自定义权限的权限集
SELECT Id, DeveloperName,
(select Id, Parent.Name, Parent.Profile.Name from SetupEntityAccessItems)
FROM CustomPermission
WHERE DeveloperName = 'Example_CP'
-- 查询所有包含任意自定义权限的简档和权限集
SELECT Assignee.Name, PermissionSet.Id,
PermissionSet.Profile.Name,
PermissionSet.isOwnedByProfile,
PermissionSet.Label
FROM PermissionSetAssignment
WHERE PermissionSetId
IN (SELECT ParentId
FROM SetupEntityAccess
WHERE SetupEntityType = 'CustomPermission')
-- 查询ID是userId变量的值的用户所拥有的权限
SELECT SetupEntityId
FROM SetupEntityAccess
WHERE SetupEntityType='CustomPermission'
AND ParentId IN
(SELECT PermissionSetId
FROM PermissionSetAssignment
WHERE AssigneeId=:userId)
最新文章
- (转)雅虎工程师提供的css初始化示例代码
- java之如何实现调用启动一个可执行文件,exe
- MyEclipse 8.5 Axis2 插件完整jar包
- Contoso 大学 - 5 – 读取关联数据
- Python和C|C++的混编(一):Python调用C、C++---Boost库
- oracle 之 内存—鞭辟近里(三)
- 网络的基本概念TCP, UDP, 单播(Unicast), 多播(多播)(Multicast)
- 定期清空log文件
- sftp新建用户步骤
- python3 第十一章 - 数据类型之str(字符串)
- 【leet-code】542. 01 矩阵
- JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么?
- Oracle 学习笔记(二)
- shell脚本--数值比较
- Transaction
- 标准I/O读写文件
- 语义SLAM的数据关联和语义定位(三)
- Xcode 几个图标解释
- PyQt 5控件
- Python爬虫常用之登录(一) 思想
热门文章
- Http Header 之 Requests Header 和 Responses Header
- Spring Boot 集成 Mybatis 实现双数据源
- 【WebAPI No.2】如何WebAPI发布
- xlwt set style making error: More than 4094 XFs (styles)
- 用RIPv2实现网络区域的互通
- Java中锁分类
- delete attempted to return null from a method with a primitive return type (int)
- Java基础之Java 修饰符
- 一个简单有趣的Python音乐播放器
- c#中打开Excel文档