本文整理汇总了Python中zope.securitypolicy.interfaces.IPrincipalRoleMap.getPrincipalsForRole方法的典型用法代码示例。如果您正苦于以下问题:Python IPrincipalRoleMap.getPrincipalsForRole方法的具体用法?Python IPrincipalRoleMap.getPrincipalsForRole怎么用?Python IPrincipalRoleMap.getPrincipalsForRole使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类zope.securitypolicy.interfaces.IPrincipalRoleMap
的用法示例。
在下文中一共展示了IPrincipalRoleMap.getPrincipalsForRole方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_principal_ids
# 需要导入模块: from zope.securitypolicy.interfaces import IPrincipalRoleMap [as 别名]
# 或者: from zope.securitypolicy.interfaces.IPrincipalRoleMap import getPrincipalsForRole [as 别名]
def get_principal_ids(document, roles):
principal_ids = set()
document_prm = IPrincipalRoleMap(document)
group_prms = get_group_prms(document)
for role in roles:
if role in ROLES_DIRECTLY_DEFINED_ON_OBJECTS:
principals = document_prm.getPrincipalsForRole(role)
for principal in principals:
principal_ids.add(principal[0])
else:
for group_prm in group_prms:
principals = group_prm.getPrincipalsForRole(role)
for principal in principals:
principal_id = principal[0]
if principal_id.startswith("group"):
group_mbr_ids = get_group_member_ids(principal_id)
for group_mbr in group_mbr_ids:
principal_ids.add(group_mbr)
return principal_ids