def get(self, account_id): """List all roles occupied by a service account.""" try: return ok(result=models.account_details(account_id), msg="Roles retrieved successfully.") except WebFault as e: admin = UserAdmin() raise ResourceError(msg=admin.error_msg(e))
def get(self, role_id, account_id): """List details about a service account's occupation of a role.""" if models.has_role(account_id, role_id): return ok(result=models.account_details(account_id), msg="Service account retrieved successfully.") raise ResourceError( msg="{} is not occupied by service account {}".format( role_id, account_id))
def post(self, account_id): """Add a role to the list of roles occupied by a service account.""" args = self.validate_post() admin = UserAdmin() try: admin.updateRolesOfUser(userName=account_id, newUserList=models.role_in(args['roleId'])) except WebFault as e: raise ResourceError(msg=admin.error_msg(e)) return ok(result=models.account_details(account_id), msg="Role {} added successfully.".format(args['roleId']))
def post(self): """Create a new service account.""" args = self.validate_post() account_id = args['accountId'] if '-' in account_id: raise ResourceError( msg="Invalid account id: no '-' characters are allowed.") admin = UserAdmin() try: admin.addUser(userName=account_id, password=args['password']) except WebFault as e: raise ResourceError(msg=admin.error_msg(e)) except Exception as e: raise ResourceError(msg='Uncaught exception: {}'.format(e)) return ok(result=models.account_details(account_id), msg="Service account created successfully.")
def get(self, account_id): """Get details about a service account.""" return ok(result=models.account_details(account_id), msg="Service account retrieved successfully.")