feat: 완전한 사용자 관리 및 로그 모니터링 시스템 구현
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
- 시스템 관리자/관리자 권한별 대시보드 기능 추가 - 사용자 관리 페이지: 계정 생성, 역할 변경, 사용자 삭제 - 시스템 로그 페이지: 로그인 로그, 시스템 오류 로그 조회 - 로그 모니터링 대시보드: 실시간 통계, 최근 활동, 오류 모니터링 - 프론트엔드 ErrorBoundary 및 오류 로깅 시스템 통합 - 계정 설정 페이지: 프로필 업데이트, 비밀번호 변경 - 3단계 권한 시스템 (system/admin/user) 완전 구현 - 시스템 관리자 계정 생성 기능 (hyungi/000000) - 로그인 페이지 테스트 계정 안내 제거 - API 오류 수정: CORS, 이메일 검증, User 모델 import 등
This commit is contained in:
@@ -27,9 +27,9 @@ class User(Base):
|
||||
name = Column(String(100), nullable=False)
|
||||
email = Column(String(100), index=True)
|
||||
|
||||
# 권한 관리
|
||||
role = Column(String(20), default='user', nullable=False)
|
||||
access_level = Column(String(20), default='worker', nullable=False)
|
||||
# 권한 관리 - 3단계 시스템: system(제작자) > admin(관리자) > user(사용자)
|
||||
role = Column(String(20), default='user', nullable=False) # system, admin, user
|
||||
access_level = Column(String(20), default='worker', nullable=False) # 호환성 유지
|
||||
|
||||
# 계정 상태 관리
|
||||
is_active = Column(Boolean, default=True, nullable=False)
|
||||
@@ -118,6 +118,40 @@ class User(Base):
|
||||
def update_last_login(self):
|
||||
"""마지막 로그인 시간 업데이트"""
|
||||
self.last_login_at = datetime.utcnow()
|
||||
|
||||
# 권한 체크 메서드들
|
||||
def is_system(self) -> bool:
|
||||
"""시스템 관리자 권한 확인"""
|
||||
return self.role == 'system'
|
||||
|
||||
def is_admin(self) -> bool:
|
||||
"""관리자 권한 확인 (시스템 관리자 포함)"""
|
||||
return self.role in ['system', 'admin']
|
||||
|
||||
def is_user(self) -> bool:
|
||||
"""일반 사용자 권한 확인"""
|
||||
return self.role == 'user'
|
||||
|
||||
def can_create_users(self) -> bool:
|
||||
"""사용자 생성 권한 확인 (시스템 관리자만)"""
|
||||
return self.is_system()
|
||||
|
||||
def can_view_logs(self) -> bool:
|
||||
"""로그 조회 권한 확인 (관리자 이상)"""
|
||||
return self.is_admin()
|
||||
|
||||
def can_manage_system(self) -> bool:
|
||||
"""시스템 관리 권한 확인 (시스템 관리자만)"""
|
||||
return self.is_system()
|
||||
|
||||
def get_role_display_name(self) -> str:
|
||||
"""역할 표시명 반환"""
|
||||
role_names = {
|
||||
'system': '시스템 관리자',
|
||||
'admin': '관리자',
|
||||
'user': '사용자'
|
||||
}
|
||||
return role_names.get(self.role, '알 수 없음')
|
||||
|
||||
|
||||
class LoginLog(Base):
|
||||
|
||||
Reference in New Issue
Block a user