有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将权限掩码转换为GetPermissionCollection的角色

我们有一个要求,我们需要检查用户是否有权“上传”Sharepoint文档库中的文件夹。为此,我在文档库上使用Permissions webservice的“GetPermissionCollection”方法。我得到的答复如下:

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

Java中有没有办法将掩码转换为角色

提前谢谢


共 (2) 个答案

  1. # 1 楼答案

    我找到了这个链接: 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);
        }
    });
    
  2. # 2 楼答案

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