【问题标题】:Convert Permission Mask to Roles for GetPermissionCollection将权限掩码转换为 GetPermissionCollection 的角色
【发布时间】:2010-02-09 04:12:52
【问题描述】:

我们有一个要求,我们需要检查用户是否对 Sharepoint 文档库中的文件夹具有“上传”权限。为此,我在文档库上使用 Permissions Web 服务的“GetPermissionCollection”方法。我得到的响应格式如下:

我无法将权限掩码转换为角色。我在 Java 中执行此操作,但我没有 SPBasePermissions 类。

Java中有没有办法将Mask转换为角色?

提前致谢

【问题讨论】:

    标签: java sharepoint permissions


    【解决方案1】:

    是的,您只需要对它进行按位运算。您需要硬连线您关心的权限的位掩码,但这应该足够安全,因为这些在 SharePoint 2010 中不会更改。

    【讨论】:

    • 您能提供详细信息吗?
    【解决方案2】:

    我找到了这个链接: 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 我希望这对您有所帮助,我这样做是因为我也需要它,但它也可能对其他人有所帮助。

    您需要将 LIST NAME HERE 替换为列表名称,并找出哪个是要上传的掩码。

    该脚本将吐出所有有权访问列表的人,并说明他们是否可以阅读、添加、更改和删除内容。希望对您有所帮助。

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

    【讨论】:

    • 完成函数的最后一行在 DIV id 中需要一个 #:$('#divid').html(out);
    猜你喜欢
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 2022-10-18
    • 1970-01-01
    • 2021-07-15
    • 2014-02-03
    • 1970-01-01
    • 2012-10-24
    相关资源
    最近更新 更多