async def share_subject(subject_id: str, token: str): security_payload = validate_jwt(token) user = get_user(security_payload["sub"]) if user is None: raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) subject = load_console_subject_by_id(subject_id) return {"subject": subject}
async def share_dashboard(dashboard_id: str, token: str): security_payload = validate_jwt(token) user: User = get_user(security_payload["sub"]) if user is None: raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) dashboard = load_dashboard_by_id(dashboard_id, user) return load_space_list_by_dashboard(dashboard, user)
async def share_dashboard(dashboard_id: str, token: str): security_payload = validate_jwt(token) user = get_user(security_payload["sub"]) if user is None: raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED) dashboard = load_dashboard_by_id(dashboard_id) reports = load_reports_by_ids(list(map(lambda report: report.reportId, dashboard.reports))) return {"dashboard": dashboard, "reports": reports}
async def load_template_space_list(space_id: str, current_user: User = Depends( deps.get_current_user)): results: List[ConsoleSpace] = load_template_space_list_by_space_id( space_id) template_list = [] for console_space in results: user = get_user(console_space.userId) template_list.append( ConnectedSpaceTemplate(connectId=console_space.connectId, name=console_space.name, createBy=user.name)) return template_list
def get_current_user(token: str = Depends(reusable_oauth2)) -> User: try: payload = validate_jwt(token) # token_data = token.TokenPayload(**payload) except (jwt.JWTError, ValidationError): raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail="Could not validate credentials", ) user = get_user(payload["sub"]) if not user: raise HTTPException(status_code=404, detail="User not found") return user
async def load_user(user_id: str, current_user: User = Depends(deps.get_current_user)): return get_user(user_id)
async def import_user(user: User): result = get_user(user.userId) if result is None: import_user_to_db(user) else: update_user_storage(user)