in src/lambdas/modular_api_handler/processors/role_processor.py [0:0]
def post(self, event: RolePost):
if self.rbac_service.get_role(event.customer_id, event.name):
raise ResponseFactory(HTTPStatus.CONFLICT).message(
f'Role with name \'{event.name}\' already exists.'
).exc()
for policy in event.policies:
if not self.rbac_service.get_policy(event.customer_id, policy):
raise ResponseFactory(HTTPStatus.BAD_REQUEST).message(
f'Policy {policy} does not exist'
).exc()
role = self.rbac_service.build_role(
customer=event.customer_id,
name=event.name,
policies=list(event.policies)
)
_LOG.debug('Saving role')
self.rbac_service.save(role)
return build_response(
code=HTTPStatus.CREATED,
content=self.rbac_service.get_dto(role)
)