这里总结一下关于使用ECMAscript对象模型来操作Goup与User的常用情况,因为内容较多,所以拆分为两个部分,这部分主要内容如下:
     1、取得当前Sharepoint网站所有的Group
     2、获取当前登录用户的Title与所属Group
     3、获取指定Group下的所有Users
     4、获取指定Group下的所有Users的特定信息
     5、获取所有的Group的所有Users的特定信息

分别描述如下:

1、取得当前Sharepoint网站所有的Group

//Get All The Site Groups in SharePoint Using ECMAScript
    var groupCollection;
    function getAllSiteGroups() {
        var clientContext = new SP.ClientContext();
        this.groupCollection = clientContext.get_web().get_siteGroups();
        clientContext.load(groupCollection);
        clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededgetAllSiteGroups),
        Function.createDelegate(this, this.onQueryFailedgetAllSiteGroups));

}

function onQuerySucceededgetAllSiteGroups() {
        var groupName = 'Site Groups: \n';
        var groupsEnumerator = this.groupCollection.getEnumerator();
        while (groupsEnumerator.moveNext()) {
            var group = groupsEnumerator.get_current();
            groupName += 'Title :' + group.get_title() + 'ID :' + group.get_id() + '\n';
        }
        alert(groupName);
    }

function onQueryFailedgetAllSiteGroups(sender, args) {
        alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
    }

     2、获取当前登录用户的Title与所属Group

//retrieve curent loggedin user and the usres GROUP 
    var user;
    var visitorsGroup;

function retrieveCurrLgUserAndGrp() {
        var clientContext = new SP.ClientContext();
        var groupCollection = clientContext.get_web().get_siteGroups();
        // Get the visitors group, assuming its ID is 4.
        visitorsGroup = groupCollection.getById(4);
        user = clientContext.get_web().get_currentUser();
        var userCollection = visitorsGroup.get_users();
        userCollection.addUser(user);

clientContext.load(user);
        clientContext.load(visitorsGroup);
        clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededretrieveCurrLgUserAndGrp),
        Function.createDelegate(this, this.onQueryFailedretrieveCurrLgUserAndGrp));

}

function onQuerySucceededretrieveCurrLgUserAndGrp() {
        alert(user.get_title() + " added to group " + visitorsGroup.get_title());
    }

function onQueryFailedretrieveCurrLgUserAndGrp(sender, args) {
        alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
    }

  3、获取指定Group下的所有Users

var siteUrlretrieveAllUsersInGroup = '/';
    function retrieveAllUsersInGroup(groupID) {
        // debugger;
        var clientContext = new SP.ClientContext.get_current();
        //var clientContext = new SP.ClientContext(siteUrlretrieveAllUsersInGroup);
        var collGroup = clientContext.get_web().get_siteGroups();
        var oGroup = collGroup.getById(groupID);  //Specify which group you want to retrieve
        // var oGroup = collGroup.getByTitle('DevpTest Visitor');
        this.collUser = oGroup.get_users();
        clientContext.load(collUser);
        clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededretrieveAllUsersInGroup),
        Function.createDelegate(this, this.onQueryFailedretrieveAllUsersInGroup));
    }

function onQuerySucceededretrieveAllUsersInGroup() {
        // debugger;
        var userInfo = '';

var userEnumerator = collUser.getEnumerator();
        while (userEnumerator.moveNext()) {
            var oUser = userEnumerator.get_current();
            userInfo = userInfo + '\nUser Title: ' + oUser.get_title() +
            '\nID: ' + oUser.get_id() +
            '\nEmail: ' + oUser.get_email() +
            '\nLogin Name: ' + oUser.get_loginName();
        }

alert(userInfo);
    }

function onQueryFailedretrieveAllUsersInGroup(sender, args) {

alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
    }

4、获取指定Group下的所有Users的特定信息

 //Get User Specific Informations
    var siteUrlSpecificUserProperties = '/';

function retrieveSpecificUserProperties(groupID) {
        //var clientContext = new SP.ClientContext(siteUrlSpecificUserProperties);
        var clientContext = new SP.ClientContext.get_current();
        var collGroup = clientContext.get_web().get_siteGroups();
        var oGroup = collGroup.getById(groupID);
        this.collUser = oGroup.get_users();
        clientContext.load(collUser, 'Include(Title, LoginName, Email)');

clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededretrieveSpecificUserProperties),
         Function.createDelegate(this, this.onQueryFailedretrieveSpecificUserProperties));
    }

function onQuerySucceededretrieveSpecificUserProperties() {

var userInfo = '';

var userEnumerator = collUser.getEnumerator();
        while (userEnumerator.moveNext()) {
            var oUser = userEnumerator.get_current();
            userInfo += '\nUser: ' + oUser.get_title() +
            '\nEmail: ' + oUser.get_email() +
            '\nLogin Name: ' + oUser.get_loginName();
        }

alert(userInfo);
    }

function onQueryFailedretrieveSpecificUserProperties(sender, args) {

alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
    }

     5、获取所有的Group的所有Users的特定信息

 //Retrieve all groups all users specific informations
    var siteUrlAllUsersAllGroupsSpecificProperties = '/';
    function retrieveAllUsersAllGroupsSpecificProperties() {
        //var clientContext = new SP.ClientContext(siteUrlAllUsersAllGroupsSpecificProperties);
        var clientContext = new SP.ClientContext.get_current();
        this.collGroup = clientContext.get_web().get_siteGroups();
        clientContext.load(collGroup, 'Include(Title,Id,Users.Include(Title,LoginName))');

clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceededretrieveAllUsersAllGroupsSpecificProperties),
                                        Function.createDelegate(this, this.onQueryFailedretrieveAllUsersAllGroupsSpecificProperties));

}

function onQuerySucceededretrieveAllUsersAllGroupsSpecificProperties() {

var userInfo = '';

var groupEnumerator = collGroup.getEnumerator();
        while (groupEnumerator.moveNext()) {
            var oGroup = groupEnumerator.get_current();
            var collUser = oGroup.get_users();
            var userEnumerator = collUser.getEnumerator();
            while (userEnumerator.moveNext()) {
                var oUser = userEnumerator.get_current();
                userInfo += '\nGroup ID: ' + oGroup.get_id() +
                '\nGroup Title: ' + oGroup.get_title() +
                '\nUser: ' + oUser.get_title() +
                '\nLogin Name: ' + oUser.get_loginName();
            }
        }

alert(userInfo);
    }

function onQueryFailedretrieveAllUsersAllGroupsSpecificProperties(sender, args) {

alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
    }

 

Sharepoint学习笔记—ECMAScript对象模型系列-- 8、组与用户操作(一)相关推荐

  1. Sharepoint学习笔记—ECMAScript对象模型系列-- 7、获取和修改List的Lookup字段

    在前面我们提到了如何使用ECMAscript对象模型来操作普通的List Items,但如果我们操作的List包含有Lookup字段,那么我们又该怎么做呢? 首先参考此文搭建我们本文的测试环境 Sha ...

  2. Sharepoint学习笔记—ECMAScript对象模型系列-- 9、组与用户操作(二)

    接着上面的继续,这里我们描述的关于User与Group的操作如下: 6. 向指定Group中添加指定User      7. 获取指定Group的Owner      8. 把当前登录用户添加到指定G ...

  3. Sharepoint学习笔记—Site Definition系列-- 2、创建Content Type

    Sharepoint本身就是一个丰富的大容器,里面存储的所有信息我们可以称其为"内容(Content)",为了便于管理这些Conent,按照人类的正常逻辑就必然想到的是对此进行&q ...

  4. Sharepoint学习笔记—Site Definition系列-- 3、创建ListDefinition

    创建一个List Definition有多条途径,这里由于我们要基于前面的用户自定义Content Type来创建一个List Defintion,所以我们就需要使用到List Definition ...

  5. Sharepoint学习笔记—Site Definition系列-- 5、List Definition与List Template之比较

    在上一篇我们试图通过List Template来帮助我们相对较快的创建我们List Definition中的Schema.xml文件,你可能会发现,我们并不能照搬List Template中相应的定义 ...

  6. Sharepoint学习笔记—Site Definition系列-- 1、创建Site Columns

    https://www.cnblogs.com/wsdj-ITtech/archive/2012/08/12/2470219.html Site Columns是Sharepoint网站的一个重要底层 ...

  7. sharepoint ECMAScript对象模型系列

    转载:Sharepoint学习笔记-ECMAScript对象模型系列-- 8.组与用户操作(一) http://www.cnblogs.com/wsdj-ITtech/archive/2012/06/ ...

  8. Sharepoint学习笔记—Ribbon系列-- 2. 在Ribbon中添加新Tab

    有了上面的基础,我们来看看如何向Sharepoint网站的Ribbon中添加我们定义的Tab. 直接进入操作步骤 一.创建 SharePoint 项目 要添加新选项卡,应首先创建一个空白 ShareP ...

  9. Sharepoint学习笔记—架构系列

     为便于查阅,这里整理并列出了我的Sharepoint学习笔记中涉及架构方面的有关文章,有些内容可能会在以后更新. Sharepoin学习笔记-架构系列--  Sharepoint的网页(Page), ...

最新文章

  1. 滴滴AI Labs负责人叶杰平离职!CTO 张博接任
  2. iOS 进阶 - RUNTIME 运行时
  3. 驱动下通过进程PID获得进程名 (动态获取ImageFileName在EPROCESS结构体中的相对偏移)...
  4. 教你几招识别和防御Web网页木马
  5. RUNOOB python练习题12 找素数问题
  6. android 多线程概述
  7. JavaSE——流程控制(接收输入Scanner、分支结构(if与switch)、循环结构(while、do-while与for))
  8. 大数据学习笔记34:Hive - 数据库与表操作
  9. 十进制与二进制,八进制,十六进制的转换
  10. python开发环境的安装与配置_Python开发环境的安装配置
  11. kettle job如何利用java的反射机制获取执行的sql语句
  12. GHOST重装系统后分区丢失只剩C盘的数据恢复方法
  13. 调试 MQL5 程序
  14. 苹果公司的iPhone产品以及其历史
  15. chatgpt智能提效职场办公-ppt怎么蒙层
  16. PB 切换中英文输入法
  17. 批量论文自动下载——从dblp数据库中查找并爬取论文
  18. PIC单片机之中断程序
  19. 推荐一款好用的图标库—— Material Design Icons
  20. 【268期】不小心将测试代码提交到生产环境,教你 6 种方法秒解决!

热门文章

  1. Flutter环境搭建(Windows)
  2. 对象----《你不知道的JS》
  3. springBean生命周期----来自spring实战总结
  4. Redis 缓存设计原则
  5. phpstudy+phpstorm+debug
  6. flexbox布局的兼容性
  7. 下拉列表插件bootstrap-select使用实例
  8. 在eclipse中通过基于spring data的easyrest风格的maven项目操纵cassandra和lucene
  9. ABS是啥,为什么区块链可以与它完美结合?
  10. kafka streams_如何使用Kafka Streams实施更改数据捕获