Java 将权限掩码转换为GetPermissionCollection的角色
我们有一个要求,我们需要检查用户是否有“上载”权限访问Sharepoint文档库中的文件夹。为此,我在文档库上使用PermissionsWebService的“GetPermissionCollection”方法。我得到的答复如下: 我无法将权限掩码转换为角色。我用Java做这个,我没有SPBasePermissions类 Java中有没有办法将掩码转换为角色Java 将权限掩码转换为GetPermissionCollection的角色,java,sharepoint,permissions,Java,Sharepoint,Permissions,我们有一个要求,我们需要检查用户是否有“上载”权限访问Sharepoint文档库中的文件夹。为此,我在文档库上使用PermissionsWebService的“GetPermissionCollection”方法。我得到的答复如下: 我无法将权限掩码转换为角色。我用Java做这个,我没有SPBasePermissions类 Java中有没有办法将掩码转换为角色 提前感谢是的,您只需要对其执行位运算。您需要为您关心的权限硬连接位掩码,但这应该足够安全,因为这些权限在SharePoint 2010
提前感谢是的,您只需要对其执行位运算。您需要为您关心的权限硬连接位掩码,但这应该足够安全,因为这些权限在SharePoint 2010中不会更改。我找到了以下链接: 这说明了这一点,按位和。 您还应使用此链接: 它枚举权限的掩码 我还制作了一个javascript示例,可以帮助您。。。 但是,您必须将其转换为java 我使用了JQuery、SPServicesJS() 这是面具代码的链接 我希望这能帮助你,我这样做是因为我也需要它,但它也可能会帮助其他人 您需要将此处的列表名称替换为列表名称,并找出哪个是上载的掩码 该脚本将向所有有权访问列表的人发送消息,并告知他们是否可以阅读、添加、更改和删除内容。希望这对你有帮助
$('#divid').html('Working...').SPServices({
operation: "GetPermissionCollection",
objectName: 'LIST NAME HERE',
objectType: "List",
completefunc: function (xData, Status) {
var out = "<ul>";
$(xData.responseXML).find("Permission").each(function () {
if ($(this).attr("MemberIsUser") === "True") {
out += "<li>User: " + $(this).attr("UserLogin") + "</li>";
} else {
out += "<li>Group: " + $(this).attr("GroupName") + "</li>";
}
var readmask = 0x0000000000000001;
var addmask = 0x0000000000000002;
var editmask = 0x0000000000000004;
var deletemask = 0x0000000000000008;
out += "<li>Mask: " + $(this).attr("Mask") + "</li>";
var canread = readmask & $(this).attr("Mask").toString(16) > 0 ? "Yes" : "No";
var canadd = addmask & $(this).attr("Mask").toString(16) > 0 ? "Yes" : "No";
var canedit = editmask & $(this).attr("Mask").toString(16) > 0 ? "Yes" : "No";
var candelete = deletemask & $(this).attr("Mask").toString(16) > 0 ? "Yes" : "No";
out += "<li>Can Read: " + canread + "</li>";
out += "<li>Can Add: " + canadd + "</li>";
out += "<li>Can Edit: " + canedit + "</li>";
out += "<li>Can Delete: " + candelete + "</li>";
});
out += "</ul>";
$('divid').html(out);
}
});
$('divid').html('Working…').SPServices({
操作:“GetPermissionCollection”,
objectName:'此处列出名称',
对象类型:“列表”,
completefunc:函数(扩展数据、状态){
var out=“”;
$(扩展数据.responseXML).find(“权限”).each(函数(){
if($(this.attr(“MemberIsUser”)=“True”){
out+=“- 用户:”+$(this.attr(“UserLogin”)+“
”;
}否则{
out+=“- 组:”+$(this.attr(“GroupName”)+“
”;
}
var readmask=0x0000000000000001;
var addmask=0x0000000000000002;
var editmask=0x0000000000000004;
var deletemask=0x0000000000000008;
out+=“- 掩码:”+$(this.attr(“掩码”)+“
”;
var canread=readmask&$(this.attr(“Mask”).toString(16)>0?“是”:“否”;
var canadd=addmask&$(this.attr(“Mask”).toString(16)>0?“是”:“否”;
var canedit=editmask&$(this.attr(“Mask”).toString(16)>0?“是”:“否”;
var candelete=deletemask&$(this.attr(“Mask”).toString(16)>0?“是”:“否”;
out+=“- 可以读取:“+canread+”
”;
out+=“- 可以添加:“+canadd+”
”;
out+=“- 可以编辑:“+canedit+”
”;
out+=“- 可以删除:“+candelete+”
”;
});
out+=“
”;
$('divid').html(out);
}
});
completefunc的最后一行需要一个#in DIV id:$('#divid').html(out);你能提供详细情况吗?