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/ ...
 
随机推荐
- 【RL-TCPnet网络教程】第18章 BSD Sockets基础知识
			
第18章 BSD Sockets基础知识 本章节为大家讲解BSD Sockets,需要大家对BSD Sockets有个基础的认识,方便后面章节Socket实战操作. (本章的知识点主要整理自 ...
 - PHP workMan webSocket 转发器
			
PHP WorkerMan webSocket 功能演示===================================== 基本功能:实现页面websocket之间互相通讯 start_deb ...
 - Kali学习笔记42:SQL手工注入(4)
			
前三篇文章都是在讲发现SQL注入漏洞 如何查询得到所有的信息 那么另一条思路还未尝试过:能否修改数据? 例如这样: '; update users set user='yiqing' where us ...
 - [Swift]LeetCode8. 字符串转整数 (atoi) | String to Integer (atoi)
			
Implement atoi which converts a string to an integer. The function first discards as many whitespace ...
 - [Swift]LeetCode298. 二叉树最长连续序列 $ Binary Tree Longest Consecutive Sequence
			
Given a binary tree, find the length of the longest consecutive sequence path. The path refers to an ...
 - [Swift]LeetCode745. 前缀和后缀搜索 | Prefix and Suffix Search
			
Given many words, words[i] has weight i. Design a class WordFilter that supports one function, WordF ...
 - [Swift]LeetCode780. 到达终点 | Reaching Points
			
A move consists of taking a point (x, y) and transforming it to either (x, x+y) or (x+y, y). Given a ...
 - chmod命令相关
			
原文地址:https://www.jianshu.com/p/862a9938cc09 chmod命令用于修改文件的权限. Linux文件的三种身份和四种权限 三种身份 u:文件的拥有者: g:文件所 ...
 - Python内置函数(10)——chr
			
英文文档: chr(i) Return the string representing a character whose Unicode code point is the integer i. F ...
 - 利用Grafana展示zabbix数据
			
一.系统搭建(以Centos7为例)因为我们的主要目的是展示zabbix的数据,所以建议大家直接在zabbix的服务器上搭建这个系统,亲测两系统无冲突,这样部署的好处是两系统间的数据传输更快,前端展示 ...