Add user_login field and migrate existing credentials.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
b54624be96
commit
5a58dba347
3 files changed
+65
-8
No files matched your search
@@ -9,21 +9,22 @@ from django.utils import timezone
|
||||
|
||||
|
||||
class UserManager(BaseUserManager):
|
||||
def create_user(self, user_name: str, password: str | None = None, **extra_fields):
|
||||
if not user_name:
|
||||
raise ValueError("user_name is required")
|
||||
def create_user(self, user_login: str, password: str | None = None, **extra_fields):
|
||||
if not user_login:
|
||||
raise ValueError("user_login is required")
|
||||
extra_fields.setdefault("status", User.STATUS_GM)
|
||||
extra_fields.setdefault("is_superuser", False)
|
||||
user = self.model(user_name=user_name, **extra_fields)
|
||||
extra_fields.setdefault("user_name", user_login)
|
||||
user = self.model(user_login=user_login, **extra_fields)
|
||||
user.set_password(password)
|
||||
user.save(using=self._db)
|
||||
return user
|
||||
|
||||
def create_superuser(self, user_name: str, password: str | None = None, **extra_fields):
|
||||
def create_superuser(self, user_login: str, password: str | None = None, **extra_fields):
|
||||
"""Break-glass: status=superuser (ops + user management). Hidden from user lists."""
|
||||
extra_fields["status"] = User.STATUS_SUPERUSER
|
||||
extra_fields["is_superuser"] = True
|
||||
return self.create_user(user_name, password, **extra_fields)
|
||||
return self.create_user(user_login, password, **extra_fields)
|
||||
|
||||
|
||||
class User(AbstractBaseUser, PermissionsMixin):
|
||||
@@ -75,6 +76,7 @@ class User(AbstractBaseUser, PermissionsMixin):
|
||||
)
|
||||
|
||||
user_id = models.BigAutoField(primary_key=True)
|
||||
user_login = models.CharField(max_length=30, unique=True)
|
||||
user_name = models.CharField(max_length=30, unique=True)
|
||||
status = models.CharField(max_length=30, choices=STATUS_CHOICES, default=STATUS_GM)
|
||||
# BUH who manages this GM / GM Admin (unused for director / buh themselves).
|
||||
@@ -102,8 +104,8 @@ class User(AbstractBaseUser, PermissionsMixin):
|
||||
|
||||
objects = UserManager()
|
||||
|
||||
USERNAME_FIELD = "user_name"
|
||||
REQUIRED_FIELDS: list[str] = []
|
||||
USERNAME_FIELD = "user_login"
|
||||
REQUIRED_FIELDS: list[str] = ["user_name"]
|
||||
|
||||
class Meta:
|
||||
db_table = "user_access"
|
||||
|
||||
Reference in new issue
Block a user