2010-02-09 45 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