Fix/Add : Identity V3 validate user role
HTTP status handling in Project class is now correct: - 204 if head() returns OK (User has Role) --> True - else --> False Add this validate functionality to Identity v3 Proxy Change-Id: I12862b229a462182bd303e8a0b20fb326e6b9bff
This commit is contained in:
parent
0b1adb8664
commit
47f9206590
@ -1148,3 +1148,20 @@ class Proxy(proxy.Proxy):
|
||||
user = self._get_resource(_user.User, user)
|
||||
role = self._get_resource(_role.Role, role)
|
||||
project.unassign_role_from_user(self, user, role)
|
||||
|
||||
def validate_user_has_role(self, project, user, role):
|
||||
"""Validates that a user has a role on a project
|
||||
|
||||
:param project: Either the ID of a project or a
|
||||
:class:`~openstack.identity.v3.project.Project`
|
||||
instance.
|
||||
:param user: Either the ID of a user or a
|
||||
:class:`~openstack.identity.v3.user.User` instance.
|
||||
:param role: Either the ID of a role or a
|
||||
:class:`~openstack.identity.v3.role.Role` instance.
|
||||
:returns: True if user has role in project
|
||||
"""
|
||||
project = self._get_resource(_project.Project, project)
|
||||
user = self._get_resource(_user.User, user)
|
||||
role = self._get_resource(_role.Role, role)
|
||||
return project.validate_user_has_role(self, user, role)
|
||||
|
@ -73,7 +73,7 @@ class Project(resource.Resource, resource.TagMixin):
|
||||
url = utils.urljoin(self.base_path, self.id, 'users',
|
||||
user.id, 'roles', role.id)
|
||||
resp = session.head(url,)
|
||||
if resp.status_code == 201:
|
||||
if resp.status_code == 204:
|
||||
return True
|
||||
return False
|
||||
|
||||
@ -100,7 +100,7 @@ class Project(resource.Resource, resource.TagMixin):
|
||||
url = utils.urljoin(self.base_path, self.id, 'groups',
|
||||
group.id, 'roles', role.id)
|
||||
resp = session.head(url,)
|
||||
if resp.status_code == 201:
|
||||
if resp.status_code == 204:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user