def create(self, actor: User, resource_id: int, key: str, value: str) -> Optional[bool]: dashboard = DashboardDAO.get_by_id_or_slug(str(resource_id)) if dashboard: entry: Entry = {"owner": actor.get_user_id(), "value": value} return cache_manager.filter_state_cache.set( cache_key(resource_id, key), entry) return False
def update(self, actor: User, resource_id: int, key: str, value: str) -> Optional[bool]: dashboard = DashboardDAO.get_by_id_or_slug(str(resource_id)) if dashboard: entry: Entry = cache_manager.filter_state_cache.get( cache_key(resource_id, key)) if entry: user_id = actor.get_user_id() if entry["owner"] != user_id: raise KeyValueAccessDeniedError() new_entry: Entry = { "owner": actor.get_user_id(), "value": value } return cache_manager.filter_state_cache.set( cache_key(resource_id, key), new_entry) return False
def get_create_pipeline_ids(self, session): from myapp.models.model_job import Pipeline if g.user: pipeline_ids = session.query(Pipeline.id).filter( Pipeline.created_by_fk == User.get_user_id()).all() pipeline_ids = [pipeline_id[0] for pipeline_id in pipeline_ids] return pipeline_ids else: return []
def get_join_projects_id(self, session): from myapp.models.model_team import Project_User if g.user: projects_id = session.query(Project_User.project_id).filter( Project_User.user_id == User.get_user_id()).all() projects_id = [project_id[0] for project_id in projects_id] return projects_id else: return []
def delete(self, actor: User, resource_id: int, key: str) -> Optional[bool]: dashboard = DashboardDAO.get_by_id_or_slug(str(resource_id)) if dashboard: entry: Entry = cache_manager.filter_state_cache.get( cache_key(resource_id, key)) if entry: if entry["owner"] != actor.get_user_id(): raise KeyValueAccessDeniedError() return cache_manager.filter_state_cache.delete( cache_key(resource_id, key)) return False
def get_owner(user: User) -> Optional[int]: return user.get_user_id() if not user.is_anonymous else None