Let guests view candidates

This commit is contained in:
James Ketr 2025-06-12 16:35:32 -07:00
parent 5b33d7fa5f
commit 3a5b0f86fb

View File

@ -94,7 +94,7 @@ from models import (
Document, DocumentType, DocumentListResponse, DocumentUpdateRequest, DocumentContentResponse, Document, DocumentType, DocumentListResponse, DocumentUpdateRequest, DocumentContentResponse,
# Supporting models # Supporting models
Location, MFARequest, MFAData, MFARequestResponse, MFAVerifyRequest, RagContentMetadata, RagContentResponse, ResendVerificationRequest, Resume, ResumeMessage, Skill, SkillAssessment, SystemInfo, WorkExperience, Education, Location, MFARequest, MFAData, MFARequestResponse, MFAVerifyRequest, RagContentMetadata, RagContentResponse, ResendVerificationRequest, Resume, ResumeMessage, Skill, SkillAssessment, SystemInfo, UserType, WorkExperience, Education,
# Email # Email
EmailVerificationRequest EmailVerificationRequest
@ -3130,7 +3130,7 @@ async def get_candidates(
sortBy: Optional[str] = Query(None, alias="sortBy"), sortBy: Optional[str] = Query(None, alias="sortBy"),
sortOrder: str = Query("desc", pattern="^(asc|desc)$", alias="sortOrder"), sortOrder: str = Query("desc", pattern="^(asc|desc)$", alias="sortOrder"),
filters: Optional[str] = Query(None), filters: Optional[str] = Query(None),
current_user = Depends(get_current_user), current_user = Depends(get_current_user_or_guest),
database: RedisDatabase = Depends(get_database) database: RedisDatabase = Depends(get_database)
): ):
"""Get paginated list of candidates""" """Get paginated list of candidates"""
@ -3143,7 +3143,7 @@ async def get_candidates(
# Get all candidates from Redis # Get all candidates from Redis
all_candidates_data = await database.get_all_candidates() all_candidates_data = await database.get_all_candidates()
candidates_list = [Candidate.model_validate(data) if not data.get("is_AI") else CandidateAI.model_validate(data) for data in all_candidates_data.values()] candidates_list = [Candidate.model_validate(data) if not data.get("is_AI") else CandidateAI.model_validate(data) for data in all_candidates_data.values()]
candidates_list = [c for c in candidates_list if c.is_public or c.id == current_user.id] candidates_list = [c for c in candidates_list if c.is_public or (current_user.userType != UserType.GUEST and c.id == current_user.id)]
paginated_candidates, total = filter_and_paginate( paginated_candidates, total = filter_and_paginate(
candidates_list, page, limit, sortBy, sortOrder, filter_dict candidates_list, page, limit, sortBy, sortOrder, filter_dict