我正在尝试获取它们所属的当前用户的SharePoint组名。我一直无法找到提供该信息的方法/属性。我只能得到当前用户的用户名。有没有一个属性为我提供了我没有看到的这些信息?获取当前用户组使用SP 2010 javascript客户端对象模型
4
A
回答
4
没有直接的方法通过javascript为当前用户返回组。
这是一个post到MSDN讨论组,描述了解决此问题的方法。 如果您想知道用于检查权限的组名,解决方法是here。
所以基本上:
context = new SP.ClientContext.get_current();
web = context.get_web();
var value = web.get_effectiveBasePermissions();
如果您需要的组名,可惜的是这样做的直接方式。但是我们可以获得当前用户并获得一个组的用户集合。然后,您可以从一个组中检查用户集合,看它是否包含当前用户。
获取当前用户:example
获取组集合当前web:example
获得指定的组
var groupCollection = clientContext.get_web().get_siteGroups(); // Get the visitors group, assuming its ID is 4. visitorsGroup = groupCollection.getById(4);
获取用户的组
var userCollection = visitorsGroup.get_users();
检查用户集合以查看它是否包含指定的用户。
对于一个简单的演示,你可以看到以下document。
2
正如瓦迪姆Gremyachev表示here可以获取当前用户var currentUser = currentContext.get_web().get_currentUser()
然后让所有的群体var allGroups = currentWeb.get_siteGroups();
从这里可以遍历组,看看你的用户是当前小组。因此,如果您有要检查的组的列表,成员,所有者,查看者,则只需使用此方法检测它们是否在每个组中。
function IsCurrentUserMemberOfGroup(groupName, OnComplete) {
var currentContext = new SP.ClientContext.get_current();
var currentWeb = currentContext.get_web();
var currentUser = currentContext.get_web().get_currentUser();
currentContext.load(currentUser);
var allGroups = currentWeb.get_siteGroups();
currentContext.load(allGroups);
var group = allGroups.getByName(groupName);
currentContext.load(group);
var groupUsers = group.get_users();
currentContext.load(groupUsers);
currentContext.executeQueryAsync(OnSuccess,OnFailure);
function OnSuccess(sender, args) {
var userInGroup = false;
var groupUserEnumerator = groupUsers.getEnumerator();
while (groupUserEnumerator.moveNext()) {
var groupUser = groupUserEnumerator.get_current();
if (groupUser.get_id() == currentUser.get_id()) {
userInGroup = true;
break;
}
}
OnComplete(userInGroup);
}
function OnFailure(sender, args) {
OnComplete(false);
}
}
// example use
window.IsCurrentUserMemberOfGroup("Members", function (isCurrentUserInGroup){
if(isCurrentUserInGroup){
console.log('yep he is');
} else {
console.log('nope he aint');
}
});
相关问题
- 1. SP 2010客户端对象模型 - 最小权限
- 2. SP 2010附加文件客户端对象模型
- 3. 的SharePoint 2010客户端对象模型 - 获取当前列表的名称
- 4. 如何使用SharePoint客户端对象模型获取当前Web?
- 5. 如何使用客户端对象模型获取当前网页?
- 6. 从Sharepoint客户端获取weburl客户端对象模型
- 7. 如何在SharePoint 2013中使用客户端对象模型获取当前用户组?
- 8. 如果用户是组使用客户端对象模型
- 9. 获取listItem.fieldValues的列表客户端对象模型Sharepoint 2010
- 10. Sharepoint 2010客户端对象模型从Url获取列表项
- 11. 使用客户端对象模型
- 12. 使用客户端对象模型
- 13. 以编程方式使用客户端对象模型获取ListItemVersion SharePoint 2010
- 14. 使用客户端对象模型sharepoint获取日期字段
- 15. 前端客户端的用户对象
- 16. 使用客户端对象模型Sharepoint 2010填充Treeview
- 17. 使用SharePoint 2010客户端对象模型编辑文件
- 18. SharePoint 2010:使用客户端对象模型计数ListItem附件
- 19. 当创建客户端对象模型
- 20. 从Sharepoint 2010中的当前视图/过滤器获取项目 - 使用客户端对象模型
- 21. SharePoint 2013 JavaScript客户端对象模型
- 22. 使用TFS客户端对象模型获取当前已签出文件的用户
- 23. 在javascript客户端对象模型中的SharePoint 2010 SP.FileCreationInformation()
- 24. 客户端当前用户
- 25. 从VB中的SharePoint客户端对象模型获取用户名?
- 26. 读取列表项目Sharepoint 2010客户端对象模型
- 27. 如何使用客户端对象模型从“AssignedTo”字段获取Sharepoint用户对象?
- 28. Sharepoint 2010客户端对象模块获取站点URL列表
- 29. 更新ProjectedField与SharePoint JOIN使用JavaScript客户端对象模型
- 30. 如何模仿使用Silverlight客户端对象模型?
我正在通过同样的问题,因为两天后,我无法获得当前用户的角色。你有没有得到解决方案?请分享。 – 2011-06-22 12:20:44