Javascript 从Sharepoint 2007的权限掩码读取个人权限
我正在尝试使用SPServices jQuery库读取Sharepoint 2007网站上用户的权限掩码。我可以成功获取权限掩码的数字,但在将权限掩码响应转换为有意义的内容时遇到问题 我使用以下Javascript获取权限掩码:Javascript 从Sharepoint 2007的权限掩码读取个人权限,javascript,permissions,sharepoint-2007,Javascript,Permissions,Sharepoint 2007,我正在尝试使用SPServices jQuery库读取Sharepoint 2007网站上用户的权限掩码。我可以成功获取权限掩码的数字,但在将权限掩码响应转换为有意义的内容时遇到问题 我使用以下Javascript获取权限掩码: function getPermissions(url, sobj) { $().SPServices.defaults.webURL = url; //FIRST DO SITE $().SPServices({ operation: "
function getPermissions(url, sobj) {
$().SPServices.defaults.webURL = url;
//FIRST DO SITE
$().SPServices({
operation: "GetPermissionCollection",
async: false,
objectName: url,
objectType: "Web",
completefunc: function(xData, Status){
$(xData.responseXML).find("Permission").each(function(){
sobj.Permissions.push($(this).attr("UserLogin"));
sobj.PermissionsLevel.push($(this).attr("Mask"));
});
}
});
//NOW DO LISTS
for (x in sobj.Lists) {
$().SPServices({
operation: "GetPermissionCollection",
async: false,
objectName: sobj.Lists[x].InternalName,
objectType: "List",
completefunc: function(xData, Status){
$(xData.responseXML).find("Permission").each(function(){
sobj.Lists[x].Permissions.push($(this).attr("UserLogin"));
sobj.Lists[x].PermissionsLevel.push($(this).attr("Mask"));
});
}
});
}
}
以下是几个例子:
A) -2013006751
B) -1140590865
它们各自的二进制值为(假设使用二的补码):
A) 1000000000000011111010001100000
B) 10111100000000111111011101110
我无法理解这些数字如何等同于用户实际拥有的权限。使用中的权限表,它似乎与用户实际拥有的权限不匹配
我现在不在工作,所以我会更新更多信息,但有人能从我目前掌握的信息中发现我做错了什么吗?按位比较就是你想要的 e、 g
看 您使用SPServices调用哪个SharePoint web服务?GetPermissionCollection是SharePoint web服务-我已经在编辑中包含了Javascript代码,谢谢。谢谢-我正试图构建一种更复杂的方法来实现同样的想法,我已经尝试过了,效果很好。是的,我以前去过:)
var permissionMask = -2013006751;
var viewPages = 131072; // 100000000000000000
if((permissionMask & viewPages)===viewPages)
{
alert('person has view pages permission');
}