简历 详情手动权限

This commit is contained in:
晓丰 2025-04-17 14:03:24 +08:00
parent d4714d3f43
commit 1257aeff5d

View File

@ -1,12 +1,13 @@
from ninja import Router, Query from ninja import Router, Query
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from accounts.models import User
from authorize.models import ResumeDetailAccessRequest from authorize.models import ResumeDetailAccessRequest
from authorize.schemas import ResumeAccessRequestIn from authorize.schemas import ResumeAccessRequestIn
from resumes.models import ResumeDetail from resumes.models import ResumeDetail
from utils.auth import jwt_auth from utils.auth import jwt_auth
from utils.permissions import login_required, manager_required from utils.permissions import login_required, manager_required
resume_authorize_router = Router(tags=["简历授权管理"]) resume_authorize_router = Router(tags=["简历(详情信息)授权管理"])
@resume_authorize_router.post("/apply", auth=jwt_auth, summary="申请简历详情[普]", description="普通用户申请查看某一份简历详情") @resume_authorize_router.post("/apply", auth=jwt_auth, summary="申请简历详情[普]", description="普通用户申请查看某一份简历详情")
@ -94,3 +95,28 @@ def my_resume_request_history(request):
] ]
return {"success": True, "items": data} return {"success": True, "items": data}
@resume_authorize_router.post("/manual-authorize", auth=jwt_auth, summary="手动授权简历详情[分]", description="分管理跳过申请流程,直接授权某用户查看指定简历")
@manager_required
def manually_authorize_resume(request, user_id: int = Query(...), resume_id: int = Query(...)):
user = get_object_or_404(User, id=user_id)
resume = get_object_or_404(ResumeDetail, id=resume_id)
if not user.is_user():
return {"success": False, "message": "仅能授权给普通用户"}
if resume.source not in request.user.managed_websites.all():
return {"success": False, "message": "无权授权该简历"}
record, created = ResumeDetailAccessRequest.objects.get_or_create(
user=user,
resume=resume,
defaults={"status": "approved", "reason": "由分管理手动授权"}
)
if not created:
record.status = "approved"
record.save()
return {"success": True, "message": f"已手动授权 {user.username} 访问简历 {resume.id}"}