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;
    }
}

原文地址:https://www.cnblogs.com/chengcheng0148/p/apex_user_group_management.html

时间: 2024-08-05 22:39:19

Apex 中操作用户和组的相关文章

Linux-(10)Linux中的用户和组

和Windows一样,当我们使用Linux时,也需要以一个用户的身份登录,一个进程也需要以一个用户的身份运行,用户限制使用者或进程可以使用,不可以使用哪些资源. 在我们使用Linux时,都是用一个用户名来进入系统的,而实际上在Linux中,每一个用户都拥有一个UserID,操作系统实际使用的是用户的ID来区分用户,而不是我们登录系统用的用户名. 在Linux中,每个用户都属于一个主组,属于一个或多个附属组.主组默认是和用户名相同的,也就是说创建用户的时候会默认创建一个同名的组. 同用户一样,每个

Linux中的用户和组

Linux中,用户可大致分为两类:管理员 和 普通用户. 普通用户又可以细分为 系统用户 和 登录用户. 我们知道Linux中默认的管理员用户名叫 root,那么操作系统是怎样识别一个用户是 管理员用户 还是 普通用户呢,是跟我们想象的一样,通过用户名去识别吗?并不是,操作系统是通过UID去识别用户是否为管理员的,这里说到的UID是一个数字,它标识了用户的身份,管理员用户的uid为0,所以操作系统判断一个用户是否为管理员,就是去判断这个用户的UID是否为0,跟用户名没有任何关系. 管理员的UID

Centos7 目录与文件操作/ 用户、组权限操作/ vi文本编辑器

bin sbin:运行的程序目录boot:跟系统引导相关的文件或者目录dev:存放的设备名etc:跟配置相关的文件home:一些用户的目录在里面lib lib64:存放的库文件root:超级管理员目录run:跟程序运行相关的一些文件tmp:临时的数据usr:一些安装的程序var:可变长度的文件   比如-日志 ------------------------------------------------------------------------------- touch a.c  --创

Linux中的用户丶组管理

主要以命令进行: 组:groupadd,  groupmod, groupdel 用户:useradd, usermod, userdel 认证:passwd 组解析库文件:/etc/group GRPNAME:x:GID:user1, user2, ... 组名:密码点位符:GID:以此组为附加组的用户列表,以逗号分隔 groupadd命令:添加组 groupadd  [选项]  group -g  GID:指明GID: -r, --system:系统组: groupmod命令:修改组信息 g

centos中添加用户与组

这块一直不是很熟,现在总结一下. 创建两个组,指定GID: groupadd –g 1200 postdrop groupadd –g 1000 postfix 创建一个用户,不需要家目录,指定组为postfix,额外组为postdrop,不能登录系统: useradd –M –u 1000 –g postfix –G postdrop –s /sbin/nologin postfix 删除用户时,如果提示: userdel: user newname is currently logged i

sharepoint 获取PeopleEditor控件中的用户和组

一段经典的代码 返回后直接赋值

框架 day57 BOS项目练习(流程定义/实例管理,bos用户角色同步activiti用户表组表)

BOS项目笔记第11天 内容: 1.提供新的json文件,修改系统菜单(加入工作流的菜单) 2.流程定义管理(查询.部署流程.查看png流程图片) 3.流程实例管理(查询.查看运行状态) 4.将bos系统中的用户数据和角色数据同步到activiti的用户表和组表 1.    提供新的json文件,修改系统菜单(加入工作流的菜单) 2.    流程定义管理 第一步:创建一个ProcessDefinitionAction,提供list方法,并注入流程引擎对象  查询 @Controller @Sco

Linux下用户和组管理

用户与组之间的关系是,组下面有若干个用户,每个用户必须从属于唯一一个组.组可以理解为权限的集合.用户管理的命令有:useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage.组管理的命令有:groupadd, groupdel, groupmod, gpasswd. (一)linux系统下用户角色 在linux系统下用户的角色不同,权限和所能完成的任务也不同,用户角色是通过UID来识别的,在linux下要注意root用户的UI

Linux用户与组管理(一)

Linux用户与组管理(一) 简介Linux用户与组 useradd usermod userdel groupadd groupmod groupdel 环境:CentOS 6.8 简介Linux用户与组 Linux系统在静态视角下,无非就是由诸多文件组成的一个"文件系统":从动态视角来看,无非就是一个在内核支配之下的一个"文件系统".这两种角度是有些区别的:动态角度下,内核是独立的,内核负责管控文件系统,而在静态角度下,连内核本身也是文件系统下的一个文件而已.故