我在SharePoint Online中使用 JSLink 时检测到 PermMask 值,以检查ctx.CurrentItem.PermMask
不同权限的值与Microsoft的文档不匹配,知道这些值代表什么?或者他们必须转换成其他格式?对于管理员权限,我没有遇到这些值,其值为0x7ffffffffffffffff
0x1b03c431aef - 编辑
0xb008431041 - 仅查看
0x1b03c4312ef - Contribute
0x1b03c5f1bff - 设计
0x7fffffffffffffff - 管理员
答案 0 :(得分:1)
webPermMasks
是两个32位整数,指示用户具有哪些权限。
每个位代表一个权限。
(_spPageContextInfo.webPermMasks.High).toString(2)
(_spPageContextInfo.webPermMasks.Low).toString(2)
显示位
在过去的好日子里,计算机只能使用8位,有人将其命名为Byte。
具有8位(8个权限),您只能从0到255计数
因此,要在8位CPU上存储更多的16位(0- 32768),则需要2个字节。
我们称它们为高字节和低字节
当前的计算机已经从可以处理8位到16位的CPU演变为 32位
当前SharePoint具有 37 个不同的安全权限。 不适合那些 32位
就像很多月前一样,您需要两个32位值来编码权限
某些具有常识的Microsoft工程师将其命名为高和低值
SP.js库(大多数页面上可用的标准)包含有关哪个权限是哪个位数
的信息。在开发者控制台中运行它:
for (var permLevelName in SP.PermissionKind.prototype) {
if (SP.PermissionKind.hasOwnProperty(permLevelName)) {
var permLevel = SP.PermissionKind.parse(permLevelName);
console.info(permLevelName,permLevel);
}
}
}
注释permLevel
不是 值,它是位数
SP.PermissionKind.openItems
是位数 6 ,因此值 2 ^ 6
如果您累加所有值,则会获得高阶和低阶整数权限。
注意permLevel
的{{1}}是第39位
这是高阶整数,因此值为 2 ^(39-31)
SP.PermissionKind.manageAlerts
在两个32位整数中给您 64位(具有37个权限,只有少数几个以高阶使用)
指示当前用户在当前页面
上具有什么权限注意:这是位数,而不是值!
要检查某人是否具有权限, 您必须计算(求和)值,然后 binary 检查高阶和低阶整数。
_spPageContextInfo.webPermMasks.Low
_spPageContextInfo.webPermMasks.High
SP库提供了用于检查各个级别的功能:
viewListItems: 1
addListItems: 2
editListItems: 3
deleteListItems: 4
approveItems: 5
openItems: 6
viewVersions: 7
deleteVersions: 8
cancelCheckout: 9
managePersonalViews: 10
manageLists: 12
viewFormPages: 13
anonymousSearchAccessList: 14
open: 17
viewPages: 18
addAndCustomizePages: 19
applyThemeAndBorder: 20
applyStyleSheets: 21
viewUsageData: 22
createSSCSite: 23
manageSubwebs: 24
createGroups: 25
managePermissions: 26
browseDirectories: 27
browseUserInfo: 28
addDelPrivateWebParts: 29
updatePersonalWebParts: 30
manageWeb: 31
anonymousSearchAccessWebLists: 32
useClientIntegration: 37
useRemoteAPIs: 38
manageAlerts: 39
createAlerts: 40
editMyUserInfo: 41
enumeratePermissions: 63
SharePoint仅使用一小部分高阶整数。
但是数据库存储了所有32位...
当我们仍在构建SharePoint后端资料时,我们会将那些未使用的位用于我们自己的权限方案。
我们让所有人安装的免费试用版实际上是功能全面的产品。
当他们购买许可产品时,所做的只是翻转数据库中的一位。
J1 iSPT
答案 1 :(得分:0)
它是权限的总和。
例如:
查看仅包含以下权限。
ViewListItems = 1
ViewVersions = 64
CreateAlerts = 549755813888
ViewFormPages = 4096
CreateSSCSite = 4194304
ViewPages = 131072
BrowseUserInfo = 134217728
UseRemoteAPIs = 137438953472
UseClientIntegration = 68719476736
Open = 65536
总和是756052856897 = 0xb008431041