本文整理汇总了Python中zope.securitypolicy.interfaces.IPrincipalRoleMap.getPrincipalsAndRoles方法的典型用法代码示例。如果您正苦于以下问题:Python IPrincipalRoleMap.getPrincipalsAndRoles方法的具体用法?Python IPrincipalRoleMap.getPrincipalsAndRoles怎么用?Python IPrincipalRoleMap.getPrincipalsAndRoles使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类zope.securitypolicy.interfaces.IPrincipalRoleMap
的用法示例。
在下文中一共展示了IPrincipalRoleMap.getPrincipalsAndRoles方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __call__
# 需要导入模块: from zope.securitypolicy.interfaces import IPrincipalRoleMap [as 别名]
# 或者: from zope.securitypolicy.interfaces.IPrincipalRoleMap import getPrincipalsAndRoles [as 别名]
def __call__(self):
try:
context = removeSecurityProxy(self.context)
map = IPrincipalRoleMap(context)
print list(map.getPrincipalsAndRoles())
files = []
path = os.path.join(setupStorageDirectory(), self.context.type)
if not os.path.exists(path):
os.makedirs(path)
file_path = os.path.join(path,context.__name__)
files.append(file_path+'.xml')
with open(file_path+'.xml','w') as file:
file.write(serialize(obj2dict(context,1,parent=None,include=['event','versions'],exclude=[])))
if len(context.attached_files) > 0:
for attachment in context.attached_files:
attachment_path = os.path.join(path, attachment.file_name)
files.append(attachment_path)
with open(os.path.join(path, attachment.file_name), 'wb') as file:
file.write(attachment.file_data)
zip = ZipFile(file_path+'.zip', 'w')
for file in files:
zip.write(file, os.path.split(file)[-1])
os.remove(file)
zip.close()
return 'Done!'
except:
traceback.print_exception(*sys.exc_info())
示例2: settingsForObject
# 需要导入模块: from zope.securitypolicy.interfaces import IPrincipalRoleMap [as 别名]
# 或者: from zope.securitypolicy.interfaces.IPrincipalRoleMap import getPrincipalsAndRoles [as 别名]
def settingsForObject(ob):
"""Analysis tool to show all of the grants to a process
"""
result = []
while ob is not None:
data = {}
result.append((getattr(ob, '__name__', '(no name)'), data))
principalPermissions = IPrincipalPermissionMap(ob, None)
if principalPermissions is not None:
settings = principalPermissions.getPrincipalsAndPermissions()
settings.sort()
data['principalPermissions'] = [
{'principal': pr, 'permission': p, 'setting': s}
for (p, pr, s) in settings]
principalRoles = IPrincipalRoleMap(ob, None)
if principalRoles is not None:
settings = principalRoles.getPrincipalsAndRoles()
data['principalRoles'] = [
{'principal': p, 'role': r, 'setting': s}
for (r, p, s) in settings]
rolePermissions = IRolePermissionMap(ob, None)
if rolePermissions is not None:
settings = rolePermissions.getRolesAndPermissions()
data['rolePermissions'] = [
{'permission': p, 'role': r, 'setting': s}
for (p, r, s) in settings]
ob = getattr(ob, '__parent__', None)
data = {}
result.append(('global settings', data))
settings = principalPermissionManager.getPrincipalsAndPermissions()
settings.sort()
data['principalPermissions'] = [
{'principal': pr, 'permission': p, 'setting': s}
for (p, pr, s) in settings]
settings = principalRoleManager.getPrincipalsAndRoles()
data['principalRoles'] = [
{'principal': p, 'role': r, 'setting': s}
for (r, p, s) in settings]
settings = rolePermissionManager.getRolesAndPermissions()
data['rolePermissions'] = [
{'permission': p, 'role': r, 'setting': s}
for (p, r, s) in settings]
return result
示例3: publish_to_xml
# 需要导入模块: from zope.securitypolicy.interfaces import IPrincipalRoleMap [as 别名]
# 或者: from zope.securitypolicy.interfaces.IPrincipalRoleMap import getPrincipalsAndRoles [as 别名]
def publish_to_xml(context, type='', include=['event','versions']):
""" Generates XML for object and saves it to the file. If object contains
attachments - XML is saved in zip archive with all attached files.
"""
try:
context = removeSecurityProxy(context)
data = obj2dict(context,1,parent=None,include=include,exclude=['file_data', 'image', 'logo_data','event_item'])
if not type:
type = context.type
data['permissions']= []
map = IPrincipalRoleMap(context)
for x in list(map.getPrincipalsAndRoles()):
data['permissions'].append({'role':x[0], 'user':x[1], 'permission':x[2].getName()})
files = []
path = os.path.join(setupStorageDirectory(), type)
if not os.path.exists(path):
os.makedirs(path)
file_path = os.path.join(path,context.__name__)
files.append(file_path+'.xml')
with open(file_path+'.xml','w') as file:
file.write(serialize(data, name=type))
try:
if len(context.attached_files) > 0:
for attachment in context.attached_files:
attachment_path = os.path.join(path, attachment.file_name)
files.append(attachment_path)
with open(os.path.join(path, attachment.file_name), 'wb') as file:
file.write(attachment.file_data)
zip = ZipFile(file_path+'.zip', 'w')
for file in files:
zip.write(file, os.path.split(file)[-1])
os.remove(file)
zip.close()
except AttributeError:
pass
except:
traceback.print_exception(*sys.exc_info())