58 lines
1.5 KiB
Python
58 lines
1.5 KiB
Python
from chalice import Blueprint
|
|
|
|
from chalicelib import _overrides
|
|
from chalicelib.core import roles
|
|
from chalicelib.core import unlock
|
|
from chalicelib.utils import assist_helper
|
|
|
|
app = Blueprint(__name__)
|
|
_overrides.chalice_app(app)
|
|
|
|
unlock.check()
|
|
|
|
|
|
@app.route('/client/roles', methods=['GET'])
|
|
def get_roles(context):
|
|
return {
|
|
'data': roles.get_roles(tenant_id=context["tenantId"])
|
|
}
|
|
|
|
|
|
@app.route('/client/roles', methods=['POST', 'PUT'])
|
|
def add_role(context):
|
|
data = app.current_request.json_body
|
|
data = roles.create(tenant_id=context['tenantId'], user_id=context['userId'], name=data["name"],
|
|
description=data.get("description"), permissions=data["permissions"])
|
|
if "errors" in data:
|
|
return data
|
|
|
|
return {
|
|
'data': data
|
|
}
|
|
|
|
|
|
@app.route('/client/roles/{roleId}', methods=['POST', 'PUT'])
|
|
def edit_role(roleId, context):
|
|
data = app.current_request.json_body
|
|
data = roles.update(tenant_id=context['tenantId'], user_id=context['userId'], role_id=roleId, changes=data)
|
|
if "errors" in data:
|
|
return data
|
|
|
|
return {
|
|
'data': data
|
|
}
|
|
|
|
|
|
@app.route('/client/roles/{roleId}', methods=['DELETE'])
|
|
def delete_role(roleId, context):
|
|
data = roles.delete(tenant_id=context['tenantId'], user_id=context["userId"], role_id=roleId)
|
|
if "errors" in data:
|
|
return data
|
|
return {
|
|
'data': data
|
|
}
|
|
|
|
|
|
@app.route('/assist/credentials', methods=['GET'])
|
|
def get_assist_credentials(context):
|
|
return {"data": assist_helper.get_full_config()}
|