v0.0.29 | 사이트 설정(SiteSettings) 모델 및 API 추가
All checks were successful
Build And Test / build-and-push (push) Successful in 2m1s
All checks were successful
Build And Test / build-and-push (push) Successful in 2m1s
- Google 로그인 활성화 여부 관리 기능 - 관리자 전용 설정 수정 API - 싱글톤 패턴으로 구현 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -5,6 +5,48 @@ from django.conf import settings # ✅ 추가
|
||||
from cryptography.fernet import Fernet
|
||||
import base64, hashlib # ✅ SECRET_KEY 암호화 키 생성용
|
||||
|
||||
|
||||
# ============================================
|
||||
# 사이트 설정 (싱글톤)
|
||||
# ============================================
|
||||
|
||||
class SiteSettings(models.Model):
|
||||
"""
|
||||
사이트 전역 설정 (싱글톤 패턴)
|
||||
- Google 로그인 활성화 여부 등 관리
|
||||
"""
|
||||
# 소셜 로그인 설정
|
||||
google_login_enabled = models.BooleanField(default=True, verbose_name="Google 로그인 활성화")
|
||||
|
||||
# 향후 확장 가능한 설정들
|
||||
# kakao_login_enabled = models.BooleanField(default=False, verbose_name="카카오 로그인 활성화")
|
||||
# naver_login_enabled = models.BooleanField(default=False, verbose_name="네이버 로그인 활성화")
|
||||
# registration_enabled = models.BooleanField(default=True, verbose_name="회원가입 허용")
|
||||
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = "사이트 설정"
|
||||
verbose_name_plural = "사이트 설정"
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
# 싱글톤 패턴: 항상 id=1로 저장
|
||||
self.pk = 1
|
||||
super().save(*args, **kwargs)
|
||||
|
||||
def delete(self, *args, **kwargs):
|
||||
# 삭제 방지
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def get_settings(cls):
|
||||
"""설정 인스턴스 가져오기 (없으면 생성)"""
|
||||
obj, created = cls.objects.get_or_create(pk=1)
|
||||
return obj
|
||||
|
||||
def __str__(self):
|
||||
return "사이트 설정"
|
||||
|
||||
class CustomUserManager(BaseUserManager):
|
||||
def create_user(self, email, password=None, **extra_fields):
|
||||
if not email:
|
||||
|
||||
Reference in New Issue
Block a user