Use set comprehension instead of converting lists to sets
This patch takes advantage of python set comprehensions syntax instead of constructing a list and converting it to set later. Also takes advantage of .isdisjoint function, that returns True if two sets have a null intersection. Should slightly improve performance and readability. Closes-Bug: #1506925 Change-Id: Ia3d8b47efcf1b2280d7570e782fd196ce716ac8a
This commit is contained in:
parent
a4496c8cb7
commit
885cdd96c6
|
@ -223,8 +223,8 @@ class KeystoneBackend(object):
|
||||||
return set()
|
return set()
|
||||||
# TODO(gabrielhurley): Integrate policy-driven RBAC
|
# TODO(gabrielhurley): Integrate policy-driven RBAC
|
||||||
# when supported by Keystone.
|
# when supported by Keystone.
|
||||||
role_perms = set(["openstack.roles.%s" % role['name'].lower()
|
role_perms = {"openstack.roles.%s" % role['name'].lower()
|
||||||
for role in user.roles])
|
for role in user.roles}
|
||||||
|
|
||||||
services = []
|
services = []
|
||||||
for service in user.service_catalog:
|
for service in user.service_catalog:
|
||||||
|
@ -236,8 +236,8 @@ class KeystoneBackend(object):
|
||||||
in service.get('endpoints', [])]
|
in service.get('endpoints', [])]
|
||||||
if user.services_region in service_regions:
|
if user.services_region in service_regions:
|
||||||
services.append(service_type.lower())
|
services.append(service_type.lower())
|
||||||
service_perms = set(["openstack.services.%s" % service
|
service_perms = {"openstack.services.%s" % service
|
||||||
for service in services])
|
for service in services}
|
||||||
return role_perms | service_perms
|
return role_perms | service_perms
|
||||||
|
|
||||||
def has_perm(self, user, perm, obj=None):
|
def has_perm(self, user, perm, obj=None):
|
||||||
|
|
|
@ -298,12 +298,12 @@ class User(models.AbstractBaseUser, models.AnonymousUser):
|
||||||
|
|
||||||
Returns ``True`` or ``False``.
|
Returns ``True`` or ``False``.
|
||||||
"""
|
"""
|
||||||
admin_roles = [role.lower() for role in getattr(
|
admin_roles = {role.lower() for role in getattr(
|
||||||
settings,
|
settings,
|
||||||
'OPENSTACK_KEYSTONE_ADMIN_ROLES',
|
'OPENSTACK_KEYSTONE_ADMIN_ROLES',
|
||||||
['admin'])]
|
['admin'])}
|
||||||
user_roles = [role['name'].lower() for role in self.roles]
|
user_roles = {role['name'].lower() for role in self.roles}
|
||||||
return True if set(admin_roles).intersection(user_roles) else False
|
return not admin_roles.isdisjoint(user_roles)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def authorized_tenants(self):
|
def authorized_tenants(self):
|
||||||
|
|
Loading…
Reference in New Issue