권한 관련 문제
권한 시스템 (Level 0~6, ADR-058) 사용 시 발생할 수 있는 문제와 해결 방법입니다.
403 Forbidden 오류
권한 레벨 부족
증상:
{
"success": false,
"message": "권한이 부족합니다.",
"error": {
"code": "forbidden",
"required_level": 2,
"current_level": 6
}
}
원인:
- 현재 사용자 권한이 요청된 작업에 부족
해결 방법:
-
현재 권한 확인
// Tinker에서
auth()->user()->permission_level;
// 결과: 6 (Member) -
필요 권한 확인
// 해당 리소스의 Policy 확인
// app/Policies/UserPolicy.php
public function update(User $user, User $model)
{
return $user->permission_level <= $model->permission_level;
} -
권한 상승 요청
- 상위 관리자에게 권한 변경 요청