Sharepoint学习笔记—ECMAScript对象模型系列-- 8、组与用户操作(一)
这里总结一下关于使用ECMAscript对象模型来操作Goup与User的常用情况,因为内容较多,所以拆分为两个部分,这部分主要内容如下:
1、取得当前Sharepoint网站所有的Group
2、获取当前登录用户的Title与所属Group
3、获取指定Group下的所有Users
4、获取指定Group下的所有Users的特定信息
5、获取所有的Group的所有Users的特定信息
分别描述如下:
1、取得当前Sharepoint网站所有的Group
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
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
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的特定信息
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的特定信息
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、组与用户操作(一)相关推荐
- Sharepoint学习笔记—ECMAScript对象模型系列-- 7、获取和修改List的Lookup字段
在前面我们提到了如何使用ECMAscript对象模型来操作普通的List Items,但如果我们操作的List包含有Lookup字段,那么我们又该怎么做呢? 首先参考此文搭建我们本文的测试环境 Sha ...
- Sharepoint学习笔记—ECMAScript对象模型系列-- 9、组与用户操作(二)
接着上面的继续,这里我们描述的关于User与Group的操作如下: 6. 向指定Group中添加指定User 7. 获取指定Group的Owner 8. 把当前登录用户添加到指定G ...
- Sharepoint学习笔记—Site Definition系列-- 2、创建Content Type
Sharepoint本身就是一个丰富的大容器,里面存储的所有信息我们可以称其为"内容(Content)",为了便于管理这些Conent,按照人类的正常逻辑就必然想到的是对此进行&q ...
- Sharepoint学习笔记—Site Definition系列-- 3、创建ListDefinition
创建一个List Definition有多条途径,这里由于我们要基于前面的用户自定义Content Type来创建一个List Defintion,所以我们就需要使用到List Definition ...
- Sharepoint学习笔记—Site Definition系列-- 5、List Definition与List Template之比较
在上一篇我们试图通过List Template来帮助我们相对较快的创建我们List Definition中的Schema.xml文件,你可能会发现,我们并不能照搬List Template中相应的定义 ...
- Sharepoint学习笔记—Site Definition系列-- 1、创建Site Columns
https://www.cnblogs.com/wsdj-ITtech/archive/2012/08/12/2470219.html Site Columns是Sharepoint网站的一个重要底层 ...
- sharepoint ECMAScript对象模型系列
转载:Sharepoint学习笔记-ECMAScript对象模型系列-- 8.组与用户操作(一) http://www.cnblogs.com/wsdj-ITtech/archive/2012/06/ ...
- Sharepoint学习笔记—Ribbon系列-- 2. 在Ribbon中添加新Tab
有了上面的基础,我们来看看如何向Sharepoint网站的Ribbon中添加我们定义的Tab. 直接进入操作步骤 一.创建 SharePoint 项目 要添加新选项卡,应首先创建一个空白 ShareP ...
- Sharepoint学习笔记—架构系列
为便于查阅,这里整理并列出了我的Sharepoint学习笔记中涉及架构方面的有关文章,有些内容可能会在以后更新. Sharepoin学习笔记-架构系列-- Sharepoint的网页(Page), ...
最新文章
- 滴滴AI Labs负责人叶杰平离职!CTO 张博接任
- iOS 进阶 - RUNTIME 运行时
- 驱动下通过进程PID获得进程名 (动态获取ImageFileName在EPROCESS结构体中的相对偏移)...
- 教你几招识别和防御Web网页木马
- RUNOOB python练习题12 找素数问题
- android 多线程概述
- JavaSE——流程控制(接收输入Scanner、分支结构(if与switch)、循环结构(while、do-while与for))
- 大数据学习笔记34:Hive - 数据库与表操作
- 十进制与二进制,八进制,十六进制的转换
- python开发环境的安装与配置_Python开发环境的安装配置
- kettle job如何利用java的反射机制获取执行的sql语句
- GHOST重装系统后分区丢失只剩C盘的数据恢复方法
- 调试 MQL5 程序
- 苹果公司的iPhone产品以及其历史
- chatgpt智能提效职场办公-ppt怎么蒙层
- PB 切换中英文输入法
- 批量论文自动下载——从dblp数据库中查找并爬取论文
- PIC单片机之中断程序
- 推荐一款好用的图标库—— Material Design Icons
- 【268期】不小心将测试代码提交到生产环境,教你 6 种方法秒解决!