Sharepoint API 权限说明

问题描述 投票:0回答:1

我想弄清楚用户是否有权访问共享点项目。

我可以调用 url 来检索驱动器项目上的 effectiveBasePermissions,但我不太明白响应。

回复:

{'d': {'EffectiveBasePermissions': {'High': '688',
                                    'Low': '1006836463',
                                    '__metadata': {'type': 'SP.BasePermissions'}}}}

我已经阅读了thisthis,但问题多于答案

我如何知道这些 id 的含义以及如何确定(当前登录的)用户是否可以访问该文件?这就是我需要知道的全部,某种布尔值就可以了。

其中一个答案中的 PermissionKind 列表看起来是硬编码的,这些数字与我在上面的回复中得到的数字不相关。

我也称这个角色定义端点

https://mydomain.sharepoint.com/sites/mySite/_api/web/roledefinitions

和回应:

{'d': {'results': [{'BasePermissions': {'High': '2147483647',
                                        'Low': '4294967295',
                                        '__metadata': {'type': 'SP.BasePermissions'}},
                    'Description': 'Has full control.',
                    'Hidden': False,
                    'Id': 1073741829,
                    'Name': 'Full Control',
                    'Order': 1,
                    'RoleTypeKind': 5,
                    '__metadata': {'id': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741829)',
                                   'type': 'SP.RoleDefinition',
                                   'uri': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741829)'}},
                   {'BasePermissions': {'High': '432',
                                        'Low': '1012866047',
                                        '__metadata': {'type': 'SP.BasePermissions'}},
                    'Description': 'Can view, add, update, delete, approve, '
                                   'and customize.',
                    'Hidden': False,
                    'Id': 1073741828,
                    'Name': 'Design',
                    'Order': 32,
                    'RoleTypeKind': 4,
                    '__metadata': {'id': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741828)',
                                   'type': 'SP.RoleDefinition',
                                   'uri': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741828)'}},
                   {'BasePermissions': {'High': '432',
                                        'Low': '1011030767',
                                        '__metadata': {'type': 'SP.BasePermissions'}},
                    'Description': 'Can add, edit and delete lists; can view, '
                                   'add, update and delete list items and '
                                   'documents.',
                    'Hidden': False,
                    'Id': 1073741830,
                    'Name': 'Edit',
                    'Order': 48,
                    'RoleTypeKind': 6,
                    '__metadata': {'id': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741830)',
                                   'type': 'SP.RoleDefinition',
                                   'uri': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741830)'}},
                   {'BasePermissions': {'High': '432',
                                        'Low': '1011028719',
                                        '__metadata': {'type': 'SP.BasePermissions'}},
                    'Description': 'Can view, add, update, and delete list '
                                   'items and documents.',
                    'Hidden': False,
                    'Id': 1073741827,
                    'Name': 'Contribute',
                    'Order': 64,
                    'RoleTypeKind': 3,
                    '__metadata': {'id': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741827)',
                                   'type': 'SP.RoleDefinition',
                                   'uri': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741827)'}},
                   {'BasePermissions': {'High': '176',
                                        'Low': '138612833',
                                        '__metadata': {'type': 'SP.BasePermissions'}},
                    'Description': 'Can view pages and list items and download '
                                   'documents.',
                    'Hidden': False,
                    'Id': 1073741826,
                    'Name': 'Read',
                    'Order': 128,
                    'RoleTypeKind': 2,
                    '__metadata': {'id': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741826)',
                                   'type': 'SP.RoleDefinition',
                                   'uri': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741826)'}},
                   {'BasePermissions': {'High': '65584',
                                        'Low': '134418433',
                                        '__metadata': {'type': 'SP.BasePermissions'}},
                    'Description': 'Can view pages, list items, and documents. '
                                   'Documents can be viewed in the browser but '
                                   'not downloaded.',
                    'Hidden': True,
                    'Id': 1073741832,
                    'Name': 'Restricted View',
                    'Order': 144,
                    'RoleTypeKind': 8,
                    '__metadata': {'id': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741832)',
                                   'type': 'SP.RoleDefinition',
                                   'uri': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741832)'}},
                   {'BasePermissions': {'High': '48',
                                        'Low': '134287360',
                                        '__metadata': {'type': 'SP.BasePermissions'}},
                    'Description': 'Can view specific lists, document '
                                   'libraries, list items, folders, or '
                                   'documents when given permissions.',
                    'Hidden': True,
                    'Id': 1073741825,
                    'Name': 'Limited Access',
                    'Order': 160,
                    'RoleTypeKind': 1,
                    '__metadata': {'id': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741825)',
                                   'type': 'SP.RoleDefinition',
                                   'uri': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741825)'}},
                   {'BasePermissions': {'High': '560',
                                        'Low': '134221824',
                                        '__metadata': {'type': 'SP.BasePermissions'}},
                    'Description': 'Can only view the web when given '
                                   'permissions.',
                    'Hidden': True,
                    'Id': 1073741833,
                    'Name': 'Web-Only Limited Access',
                    'Order': 176,
                    'RoleTypeKind': 9,
                    '__metadata': {'id': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741833)',
                                   'type': 'SP.RoleDefinition',
                                   'uri': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741833)'}},
                   {'BasePermissions': {'High': '48',
                                        'Low': '134418465',
                                        '__metadata': {'type': 'SP.BasePermissions'}},
                    'Description': None,
                    'Hidden': True,
                    'Id': 1073741924,
                    'Name': 'System.LimitedView',
                    'Order': 2147483647,
                    'RoleTypeKind': 255,
                    '__metadata': {'id': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741924)',
                                   'type': 'SP.RoleDefinition',
                                   'uri': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741924)'}},
                   {'BasePermissions': {'High': '48',
                                        'Low': '134418471',
                                        '__metadata': {'type': 'SP.BasePermissions'}},
                    'Description': None,
                    'Hidden': True,
                    'Id': 1073741925,
                    'Name': 'System.LimitedEdit',
                    'Order': 2147483647,
                    'RoleTypeKind': 255,
                    '__metadata': {'id': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741925)',
                                   'type': 'SP.RoleDefinition',
                                   'uri': 'https://mydomain.sharepoint.com/sites/mySite/_api/Web/RoleDefinitions(1073741925)'}}]}}

再说一遍,这些数字都与我在上述回复中针对某一特定项目得到的数字无关,所以我怎么知道高 688 意味着什么?

python sharepoint permissions
1个回答
0
投票

虽然您的问题“权限如何表示”已经被回答了

我想你的问题更多的是如何检索此信息。

正如链接答案中的人指出的那样,数字不是 ID,而是位域。位域只是一种以存储友好的方式存储布尔值(例如权限)的更智能方式。您不应将这些“数字”视为整数,而应将其视为二进制表示形式。因此,为了显示数字的相等性,您可以查看某个位索引处的位是否已设置为 1 或零。

链接答案中的表格为您提供了某些权限的索引。

例如为了获得许可

EditListItems
,您必须检查第三位。

Low 和 High 用于存储 uint32 数字中的位字段,但权限超过 32 个,因此它们存储在两个不同的位字段中。

获得许可,例如对于

EditListItems
- 输入您只需
and
以及您要检查的权限的位掩码。

editBitmask = 0b100
access = 0b110

canEdit = bool(editBitmask & access)

如果您想一次检查多个权限,您可以

or
将它们全部放入一个示例位掩码中:

editBitmask = 0b100
readBitmask = 0b1
bitmask = editBitmask | readBitmask
access = 0b110

canAccess = bool(bitmask & access)

从您的问题来看,不清楚您要检查哪些权限,但我想这只是您是否可以查看列表条目。所以函数是:

def canViewList(inputLow: str):
    lowBitfield = int(inputLow)
    return bool(lowBitfield & 0b1)

print(canViewList("1006836463"))

这是查看 sharepoint-stackexchange 上的答案并对位字段进行一些研究所提供的所有信息。

堆栈溢出不是一个应该取代最低限度研究的地方。

© www.soinside.com 2019 - 2024. All rights reserved.