2010-02-09 3 views
2

사용자에게 Sharepoint 문서 라이브러리의 폴더에 대한 "업로드"권한이 있는지 확인해야하는 경우가 필요합니다. 이를 위해 필자는 문서 라이브러리에서 권한 webservice의 "GetPermissionCollection"메서드를 사용하고 있습니다. 내가 얻을 응답은 다음 형식이다 :권한 마스크를 GetPermissionCollection의 역할로 변환

나는 역할에 권한 마스크를 변환 할 수 없습니다입니다. Java에서이 작업을 수행하고 있으며 SPBasePermissions 클래스가 없습니다.

Java에서 역할을 마스크로 변환하는 방법이 있습니까?

미리 감사드립니다.

답변

1

예, 비트 연산 만하면됩니다. 당신이 관심있는 권한에 대한 비트 마스크를 하드 와이어해야하지만이 내가이 링크를 발견 셰어 포인트 2010

0

변경되지 않기 때문에이 충분히 안전해야 : Permission/Deny Mask in SharePoint 이 비트 AND 대해 뭔가를 말한다. http://msdn.microsoft.com/en-us/library/dd304243%28PROT.13%29.aspx

이 링크는 사용 권한에 대한 마스크를 Enum합니다.

나는 또한 당신이 마스크 코드에 대한 자바

나는 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

DIF에서 마지막 줄의 DIV ID는 $ ('# divid')입니다 .html (out); –

관련 문제