blob: 3f6c06aecf88a1e86c9cc261b8b5c8617565b2eb [file] [log] [blame]
from keystonev3.common import send
from keystonev3.arg_converter import get_by_name_or_uuid_multiple
try:
from urllib.parse import urlencode
except ImportError:
from urllib import urlencode
@get_by_name_or_uuid_multiple([('project', 'project_id'), ('user', 'user_id'),
('role', 'role_id')])
@send('put')
def role_assign_for_user_on_project(project_id, user_id, role_id, **kwargs):
url = '/projects/{}/users/{}/roles/{}'.format(project_id, user_id, role_id)
return url, None
@get_by_name_or_uuid_multiple([('domain', 'domain_id'), ('user', 'user_id'),
('role', 'role_id')])
@send('put')
def role_assign_for_user_on_domain(domain_id, user_id, role_id, **kwargs):
url = '/domains/{}/users/{}/roles/{}'.format(domain_id, user_id, role_id)
return url, None
@get_by_name_or_uuid_multiple([('project', 'project_id'), ('user', 'user_id'),
('role', 'role_id')])
@send('delete')
def role_unassign_for_user_on_project(project_id, user_id, role_id, **kwargs):
url = '/projects/{}/users/{}/roles/{}'.format(project_id, user_id, role_id)
return url, None
@get_by_name_or_uuid_multiple([('domain', 'domain_id'), ('user', 'user_id'),
('role', 'role_id')])
@send('delete')
def role_unassign_for_user_on_domain(domain_id, user_id, role_id, **kwargs):
url = '/domains/{}/users/{}/roles/{}'.format(domain_id, user_id, role_id)
return url, None
@get_by_name_or_uuid_multiple([('project', 'project_id'), ('user', 'user_id'),
('role', 'role_id')])
@send('head')
def role_assign_check_for_user_on_project(project_id, user_id, role_id,
**kwargs):
url = '/projects/{}/users/{}/roles/{}'.format(project_id, user_id, role_id)
return url, None
@get_by_name_or_uuid_multiple([('domain', 'domain_id'), ('user', 'user_id'),
('role', 'role_id')])
@send('head')
def role_assign_check_for_user_on_domain(domain_id, user_id, role_id,
**kwargs):
url = '/domains/{}/users/{}/roles/{}'.format(domain_id, user_id, role_id)
return url, None
@get_by_name_or_uuid_multiple([('role', 'role_id')])
@send('get')
def role_get_details(role_id, **kwargs):
url = '/roles/{}?{}'.format(role_id, urlencode(kwargs))
return url, None
@get_by_name_or_uuid_multiple([('role', 'role_id')])
@send('patch')
def role_update(role_id, **kwargs):
url = '/roles/{}'.format(role_id)
json = {
'role': kwargs,
}
return url, json
@get_by_name_or_uuid_multiple([('role', 'role_id')])
@send('delete')
def role_delete(role_id, **kwargs):
url = '/roles/{}'.format(role_id)
return url, None
@send('post')
def role_create(**kwargs):
url = '/roles'
json = {
'role': kwargs,
}
return url, json
@get_by_name_or_uuid_multiple([('role', 'prior_role_id')])
@send('get')
def role_inference_rule_for_role_list(prior_role_id, **kwargs):
url = '/roles/{}/implies'.format(prior_role_id)
return url, None
@get_by_name_or_uuid_multiple([('role', 'prior_role_id'),
('role', 'implies_role_id')])
@send('put')
def role_inference_rule_create(prior_role_id, implies_role_id, **kwargs):
url = '/roles/{}/implies/{}'.format(prior_role_id, implies_role_id)
return url, None
@get_by_name_or_uuid_multiple([('role', 'prior_role_id'),
('role', 'implies_role_id')])
@send('get')
def role_inference_rule_get(prior_role_id, implies_role_id, **kwargs):
url = '/roles/{}/implies/{}'.format(prior_role_id, implies_role_id)
return url, None
@get_by_name_or_uuid_multiple([('role', 'prior_role_id'),
('role', 'implies_role_id')])
@send('head')
def role_inference_rule_confirm(prior_role_id, implies_role_id, **kwargs):
url = '/roles/{}/implies/{}'.format(prior_role_id, implies_role_id)
return url, None
@get_by_name_or_uuid_multiple([('role', 'prior_role_id'),
('role', 'implies_role_id')])
@send('delete')
def role_inference_rule_delete(prior_role_id, implies_role_id, **kwargs):
url = '/roles/{}/implies/{}'.format(prior_role_id, implies_role_id)
return url, None