2010-02-09 40 views
2

我们有一个要求,我们需要检查用户是否具有“上载”对Sharepoint文档库中文件夹的访问权限。为此,我在文档库上使用Permissions webservice的“GetPermissionCollection”方法。我得到的回应是以下格式:将权限掩码转换为GetPermissionCollection的角色

我无法将权限掩码转换为角色。我在Java中这样做,我没有SPBasePermissions类。

在Java中是否有方法将Mask转换为角色?

在此先感谢

回答

1

是的,你只需要对它进行按位操作。你需要硬连接您所关心的权限位掩码,但是这应该是足够安全的,因为这些都不在SharePoint 2010

0

改变,我发现这个链接: Permission/Deny Mask in SharePoint 它说一些有关此位与。 你也应该使用这个链接: http://msdn.microsoft.com/en-us/library/dd304243%28PROT.13%29.aspx

哪些使用掩码获取权限。

我还做了一个JavaScript的例子,可以帮助你...... 但是你必须把它转换成Java

我用的JQuery,SPServices JS(http://spservices.codeplex.com/) 而这个链接的口罩码 http://msdn.microsoft.com/en-us/library/dd304243%28PROT.13%29.aspx 我希望这可以帮助你,我这样做,因为我也需要它,但它也可能帮助别人。

您需要将列表名称替换为列表的名称,并找出哪个是用于上载的掩码。

该脚本会吐出每个有权访问列表的人,并说他们是否可以读取,添加,更改和删除东西。希望这可以帮助你。

$('#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); 
    } 
}); 
+0

completefunc的最后一行需要DIV中的#id: $('#divid')。html(out); – 2012-06-19 11:50:12