1
from keystone import utils
2
from keystone.common import wsgi
3
from keystone.logic.types.role import Role, RoleRef
4
import keystone.config as config
5
from . import get_marker_limit_and_url
8
class RolesController(wsgi.Controller):
9
"""Controller for Role related operations"""
11
def __init__(self, options):
12
self.options = options
16
def create_role(self, req):
17
role = utils.get_normalized_request_content(Role, req)
18
return utils.send_result(201, req,
19
config.SERVICE.create_role(utils.get_auth_token(req), role))
22
def delete_role(self, req, role_id):
23
rval = config.SERVICE.delete_role(utils.get_auth_token(req), role_id)
24
return utils.send_result(204, req, rval)
27
def get_roles(self, req):
28
marker, limit, url = get_marker_limit_and_url(req)
29
roles = config.SERVICE.get_roles(
30
utils.get_auth_token(req), marker, limit, url)
31
return utils.send_result(200, req, roles)
34
def get_role(self, req, role_id):
35
role = config.SERVICE.get_role(utils.get_auth_token(req), role_id)
36
return utils.send_result(200, req, role)
39
def create_role_ref(self, req, user_id):
40
roleRef = utils.get_normalized_request_content(RoleRef, req)
41
return utils.send_result(201, req, config.SERVICE.create_role_ref(
42
utils.get_auth_token(req), user_id, roleRef))
45
def get_role_refs(self, req, user_id):
46
marker, limit, url = get_marker_limit_and_url(req)
47
roleRefs = config.SERVICE.get_user_roles(
48
utils.get_auth_token(req), marker, limit, url, user_id)
50
return utils.send_result(200, req, roleRefs)
53
def delete_role_ref(self, req, user_id, role_ref_id):
54
rval = config.SERVICE.delete_role_ref(utils.get_auth_token(req),
56
return utils.send_result(204, req, rval)