Apex 中操作用户和组
用户和组概述
Salesforce中对于用户的定义主要体现于两个对象:用户(User)和组(Group)。组的成员可以是用户也可以是另一个组。
Salesforce中的组可以有多种表示方法,比如队列(Queue)等,它们在数据库中都是以组(Group)的形式储存。
Salesforce中的多种组件包含关于用户和组的查找类型(Lookup)字段。由于这些字段只存储了一个ID值,所以这些ID既可能是用户的ID,也可能是组的ID。
Apex代码示例
public class UserGroupExample {
// 判断一个ID的值是否是用户
public static Boolean isUserId(Id id) {
return id.getSObjectType().getDescribe() == SObjectType.User;
}
// 判断一个ID的值是否是组
public static Boolean isGroupId(Id id) {
return id.getSObjectType().getDescribe() == SObjectType.Group;
}
// 从一个组中获取所有用户成员的ID
// 由于组的成员可能是另一个组,所以必须用循环递归来得到所有的用户成员
public static Set<Id> getAllUserIdFromGroup(Id groupId) {
App.verifyNotNull('groupId', groupId);
Set<Id> userIds = new Set<Id>();
List<GroupMember> groupMembers = [SELECT UserOrGroupId FROM GroupMember WHERE GroupId = :groupId];
for(GroupMember gm : groupMembers) {
if(UserGroupExample.isUserId(gm.UserOrGroupId)) {
userIds.add(gm.UserOrGroupId);
} else if(UserGroupExample.isGroupId(gm.UserOrGroupId)){
userIds.addAll(getAllUserIdFromGroup(gm.UserOrGroupId));
}
}
return userIds;
}
}
Apex 中操作用户和组的更多相关文章
- Windows中的用户和组以及用户密码处理
目录 用户帐户 Windows 默认账户 Windows 内置用户账户 查看.创建和删除账户 组账户 内置组账户 组的查看.创建和删除 Windows中对用户密码的处理 LM-hash NTLM-ha ...
- SharePoint Online 创建用户和组
前言 本文介绍如何在Office 365中创建用户和组,这里所说的用户和组,是指Office 365中的用户和组,我们可以用这里的用户登录Office 365环境,用组的概念来管理用户,而非Share ...
- Linux下用户和组管理
用户与组之间的关系是,组下面有若干个用户,每个用户必须从属于唯一一个组.组可以理解为权限的集合.用户管理的命令有:useradd, userdel, usermod, passwd, chsh, ch ...
- 一、Vim编辑器 二、用户和组管理 三、软件的安装(jdk,mysql) 四、Shell编程
一.Vim编辑器的使用 1. vim编辑器的运行模式 编辑模式:等待用户编辑命令的输入 插入模式:编辑文本内容 命令模式:执行命令 2. 使用 :vim 文件名 3. 查看当前vim编辑器介绍:vim ...
- linux下用户和组相关的文件及相关管理命令
1.用户信息文件 /etc/passwd 示例root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2: ...
- Linux 用户 和 组 快速了解
1用户 (Linux中“只有超级管理员”才有权限操作 用户 和组) 1.1添加用户 useradd 命令 例如 :useradd hly //添加了一个新账户 hly 用户添加后 会存放在一个文件中, ...
- (转)AIX 用户和组管理
AIX 用户和组管理 原文:https://www.ibm.com/developerworks/cn/aix/library/au-aixuseradmin/ 管理 IBM AIX 中的用户和组是管 ...
- 2017.2.20 activiti实战--第五章--用户与组及部署管理(一)用户与组
学习资料:<Activiti实战> 第五章 用户与组及部署管理(一)用户与组 内容概览:讲解activiti中内置的一套用户.组的关系,以及如何通过API添加.删除.查询. 5.1 用户与 ...
- Linux用户和组的管理操作
用户和组的管理操作 命令中涉及的单词和简写: 用户:user:组:group : 增加:add : 修改:modify mod ; 删除 : delete del 增加用户 /etc/ ...
随机推荐
- Hadoop 排序
数据排序是许多实际任务在执行时要完成的第一项工作,比如学生成绩评比.数据建立索引等.这个实例和数据去重类似,都是先对原始数据进行初步处理,为进一步的数据操作打好基础. 1.实例描述 对输入文件中的数据 ...
- 使用MUI的日期控件引起的探索——HTML5 input类型date属性
我写移动端的页面会用到MUI这个框架,个人觉得挺好用的,有很多实用的UI组件.当然坑还是有的,http://dev.dcloud.net.cn/mui/ui/ MUI官网,有兴趣的小伙伴可以看看 虽然 ...
- [Swift]LeetCode78. 子集 | Subsets
Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The solut ...
- [Swift]LeetCode111. 二叉树的最小深度 | Minimum Depth of Binary Tree
Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...
- Ceres Solver 在win8+vs2013环境下的安装
参考博文:https://blog.csdn.net/wzheng92/article/details/79504709
- jQuery Mobile中表单的使用体会
jQuery Mobile是手机端(移动端)页面制作用的框架,包括CSS和JavaScript,此处简单总结一下表单的书写,主要涉及CSS部分.框架提供了表单的一些样式,但在实际使用的时候,我们可能会 ...
- Python爬虫入门教程 20-100 慕课网免费课程抓取
写在前面 美好的一天又开始了,今天咱继续爬取IT在线教育类网站,慕课网,这个平台的数据量并不是很多,所以爬取起来还是比较简单的 准备爬取 打开我们要爬取的页面,寻找分页点和查看是否是异步加载的数据. ...
- C++版 - 剑指Offer 面试题39:二叉树的深度(高度)(二叉树深度优先遍历dfs的应用) 题解
剑指Offer 面试题39:二叉树的深度(高度) 题目:输入一棵二叉树的根结点,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度.例如:输入二叉树 ...
- SpringBoot入门教程(十九)@ControllerAdvice+@ExceptionHandler全局捕获Controller异常
在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler.@InitBinder.@ModelAttribute,并应用到所有@Requ ...
- Java基础9:解读Java回调机制
更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...