Salesforce自定义权限简介
自定义权限(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)
Salesforce自定义权限简介的更多相关文章
- Salesforce 自定义标签在代码中的应用
自定义标签简介 Salesforce 中自定义标签(Custom Label)的作用是存储一般性的文本,可以用于 Apex.Visualforce 页面.Lightning 组件等地方,用于显示提示信 ...
- SalesForce学习——权限管理
Salesforce 对于权限的管理是非常严谨的并且支持不同维度的权限控制.常用的有简档.权限集.角色层级机构.组织范围. 简档:Profiles是Salesforce为每个用户指定的标准配置文件,在 ...
- Android自定义权限和使用权限
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 自定义权限,主要用于保护被赋予权限的组件.如无权限与有权限,正如public与private的对类保 ...
- Android权限安全(3)权限的分级和自定义权限
Android的不同权限分级 Normal 一般apk都可以用, Dangerous 一般apk都可以用,但有提示 SignatureOrSystem 特定的private key签名的或系统的apk ...
- android - 解决“应用自定义权限重名”
背景 现场的开发今天跟我说,测试包装不上!报错"应用自定义权限重名"!!! 网上百度下关键字,发现魅族手机有这个毛病,顺藤摸瓜:"http://bbs.flyme.cn/ ...
- 关于 DotNetCore 的自定义权限管理
1.自定义权限需要扩展 Microsoft.AspNetCore.Authentication 实现一套接口 IAuthenticationHandler, IAuthenticationSignIn ...
- SharePoint REST API - 使用REST接口对列表设置自定义权限
博客地址:http://blog.csdn.net/FoxDave SharePoint网站.列表和列表项都属于SecurableObject类型.默认情况下,一个安全对象继承父级的权限.对一个对 ...
- 如何给EOS账户设置自定义权限
https://bihu.com/article/1508858 EOS从上线以后,不断有传出token被盗的消息,安全无小事,我们一定要重视,今天从EOS帐户自己定义权限的角度来谈谈如何做好账户的安 ...
- Android自定义权限
一.自定义权限 自定义权限,一般是考虑到应用共享组件时的安全问题.我们知道在四大组件 AndroidManifest 中注册的时候,添加 exported = "true" 这一属 ...
随机推荐
- MongoDB 数据库
数据库: 关系型数据库 mysql 收费 速度快 字段类型 非关系型数据库 MongoDB 不收费 速度慢一些 存储数据都是字符串 ...
- weblogic安装及配置
WebLogic是用于开发.集成.部署和管理大型分布式Web应用.网络应用和数据库应用的Java应用服务器. 1.安装Weblogic:(1)点击Next按钮:(2) 选择Custom后点击Next按 ...
- 【Spark工作原理】Spark任务调度理解
Spark内部有若干术语(Executor.Job.Stage.Task.Driver.DAG等),需要理解并搞清其内部关系,因为这是性能调优的基石. 节点类型有: 1. Master 节点: 常 ...
- MySQL:binlog 和 redo log
[参考文章]:MySQL中Redo与Binlog顺序一致性问题? [参考文章]:极客时间 1. 数据更新时的日志处理流程 1.1 redo log(prepare状态) 此时SQL已经成功执行了,已经 ...
- 机器学习技法笔记:12 Neural Network
Roadmap Motivation Neural Network Hypothesis Neural Network Learning Optimization and Regularization ...
- live-server 快速搭建服务
原因: 在2018年3月2日偶然情况下听到一个大佬提起“live-server”这东西, 我就研究一下,用过的人才知道live-server多么方便... 功能: 当启动live-server服务的文 ...
- Xamarin.Android 本地数据库 SQLiteDatabase 操作
目的:使用 SQLiteDatabase 创建本地数据库.表,并对数据进行增删改查操作. 引用命名空间: using Android.App; using Android.Widget; using ...
- docker 容器时间和系统时间不一致
docker cp /etc/localtime 容器名:/etc/localtime cp /etc/localtime 24fe94504424:/etc/localtime date -s 09 ...
- HTML 滚动条样式修改
<style> .innerbox{ overflow-y: auto; background-color: #f8f8f8; height: 200px; padding: 10px; ...
- list源码2(参考STL源码--侯捷):constructor、push_back、insert
list源码1(参考STL源码--侯捷):list节点.迭代器.数据结构 list源码2(参考STL源码--侯捷):constructor.push_back.insert list源码3(参考STL ...