fix: 권한 시스템 일관성 개선 - 이슈 관리 권한 통일
🔐 Permission System Consistency: - 수신함/관리함/폐기함 권한이 있는 사용자는 모든 이슈 조회/처리 가능 - 기존: 조회는 관리자만, 처리는 권한 사용자 → 일관성 부족 - 개선: 조회와 처리 모두 동일한 권한 체계 적용 📋 Issues API Updates: - GET /api/issues/admin/all: get_current_admin → get_current_user + 권한 체크 - 이슈 관리 관련 페이지 권한 확인 (issues_manage, issues_inbox, issues_management, issues_archive) - 관리자이거나 해당 권한이 있는 사용자만 접근 가능 🔄 Inbox API Updates: - 모든 수신함 워크플로우 API: get_current_admin → get_current_user + 페이지 권한 체크 - dispose_issue: 수신함 권한 확인 추가 - review_issue: 수신함 권한 확인 추가 - update_issue_status: 수신함 권한 확인 추가 🎯 Permission Logic: - 사용자 관리 (auth.py): 관리자 전용 유지 (보안상 중요) - 이슈 관리: 권한 부여된 사용자 모두 접근 가능 - 수신함 워크플로우: 권한 부여된 사용자 모두 접근 가능 🔧 Technical Implementation: - check_page_access() 함수로 페이지별 권한 체크 - 관리자는 자동으로 모든 권한 보유 - 일반 사용자는 개별 페이지 권한 확인 🚀 User Experience: - 권한이 있는 일반 사용자도 수신함에서 이슈 처리 가능 - 일관된 권한 체계로 사용자 혼란 방지 - 관리자와 권한 사용자 동일한 기능 제공 Expected Result: ✅ 수신함 권한이 있는 일반 사용자도 이슈 폐기/검토/상태변경 가능 ✅ 이슈 관리 권한이 있는 사용자도 모든 이슈 조회 가능 ✅ 권한 시스템 전체적으로 일관성 있게 통일 ✅ 사용자 관리만 관리자 전용으로 보안 유지
This commit is contained in:
@@ -73,10 +73,21 @@ async def read_all_issues_admin(
|
||||
skip: int = 0,
|
||||
limit: int = 100,
|
||||
status: Optional[IssueStatus] = None,
|
||||
current_admin: User = Depends(get_current_admin),
|
||||
current_user: User = Depends(get_current_user),
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
"""관리자 전용: 모든 부적합 조회"""
|
||||
"""이슈 관리 권한이 있는 사용자: 모든 부적합 조회"""
|
||||
# 이슈 관리 페이지 권한 확인 (관리함, 폐기함 등에서 사용)
|
||||
from routers.page_permissions import check_page_access
|
||||
|
||||
# 관리자이거나 이슈 관리 권한이 있는 사용자만 접근 가능
|
||||
if (current_user.role != 'admin' and
|
||||
not check_page_access(current_user.id, 'issues_manage', db) and
|
||||
not check_page_access(current_user.id, 'issues_inbox', db) and
|
||||
not check_page_access(current_user.id, 'issues_management', db) and
|
||||
not check_page_access(current_user.id, 'issues_archive', db)):
|
||||
raise HTTPException(status_code=403, detail="이슈 관리 권한이 없습니다.")
|
||||
|
||||
query = db.query(Issue)
|
||||
|
||||
if status:
|
||||
|
||||
Reference in New Issue
Block a user