def get(cls, rid): role = cache.get(cls.PREFIX_ID.format(rid)) if role is None: role = Role.get_by_id(rid) if role is not None: cache.set(cls.PREFIX_ID.format(rid), role) return role
def update_role(rid, **kwargs): kwargs.pop('app_id', None) role = Role.get_by_id(rid) or abort( 404, "Role <{0}> does not exist".format(rid)) RoleCache.clean(rid) return role.update(**kwargs)
def delete_role(cls, rid): role = Role.get_by_id(rid) or abort( 404, "Role <{0}> does not exist".format(rid)) for i in RoleRelation.get_by(parent_id=rid, to_dict=False): i.soft_delete() for i in RoleRelation.get_by(child_id=rid, to_dict=False): i.soft_delete() for i in RolePermission.get_by(rid=rid, to_dict=False): i.soft_delete() role_rebuild.apply_async(args=(list( RoleRelationCRUD.recursive_child_ids(rid)), ), queue=ACL_QUEUE) RoleCache.clean(rid) RoleRelationCache.clean(rid) role.soft_delete()