gpt4 book ai didi

SharePoint - 将权限掩码转换为角色

转载 作者:行者123 更新时间:2023-12-03 16:18:48 26 4
gpt4 key购买 nike

我在检索列表或站点的权限时遇到问题。我正在使用 SharePoint 的权限 Web 服务和 GetPermissionCollection 方法。此方法返回如下内容:

<Permission MemberID="4" Mask="1067654015" MemberIsUser="False" MemberGlobal="True" GroupName="Collaboration demo Owners" />

我希望能够将权限掩码转换为它所属的角色。 (就像您通过网站查看权限一样)。

我发现使用 UserGroup Webservice,我可以检索角色列表及其基本权限。此服务的 GetRolesAndPermissionsForSite 方法返回如下内容:

<Role ID="1073741829" Name="Full Control" Description="Has full control." Hidden="False" Type="Administrator" BasePermissions="9223372036854775807"....

有什么方法可以将此 BasePermissions 转换为 Mask 以便比较它们?或者有没有更简单的方法将权限掩码转换为它所属的角色(权限级别)?

最佳答案

感谢 @zanlok answer,我制作了这个 javascript 示例

我使用了 JQuery、SPServices js ( http://spservices.codeplex.com/ )和这个面具代码的链接 http://msdn.microsoft.com/en-us/library/dd304243%28PROT.13%29.aspx我希望这对你有帮助,我这样做是因为我也需要它,但它也可能对其他人有帮助。

您需要将 divid 替换为您想要放置 html 的控件的值,并将 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);
}
});

关于SharePoint - 将权限掩码转换为角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3864752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com