Merge pull request #651 from wanxunyang/feat/username-non-unique-dev
feat: remove username uniqueness constraint for community edition
This commit is contained in:
@@ -9,7 +9,7 @@ class User(Base):
|
||||
__tablename__ = "users"
|
||||
|
||||
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4, index=True)
|
||||
username = Column(String, unique=True, index=True, nullable=False)
|
||||
username = Column(String, index=True, nullable=False) # 社区版:用户名不唯一,仅邮箱唯一
|
||||
email = Column(String, unique=True, index=True, nullable=False)
|
||||
hashed_password = Column(String, nullable=False)
|
||||
is_active = Column(Boolean, default=True, nullable=False)
|
||||
|
||||
@@ -78,18 +78,7 @@ def create_user(db: Session, user: UserCreate) -> User:
|
||||
business_logger.info(f"创建用户: {user.username}, email: {user.email}")
|
||||
|
||||
try:
|
||||
# 检查用户名是否已存在
|
||||
business_logger.debug(f"检查用户名是否已存在: {user.username}")
|
||||
db_user_by_username = user_repository.get_user_by_username(db, username=user.username)
|
||||
if db_user_by_username:
|
||||
business_logger.warning(f"用户名已存在: {user.username}")
|
||||
raise BusinessException(
|
||||
"用户名已存在",
|
||||
code=BizCode.DUPLICATE_NAME,
|
||||
context={"username": user.username, "email": user.email}
|
||||
)
|
||||
|
||||
# 检查邮箱是否已注册
|
||||
# 检查邮箱是否已注册(邮箱保持唯一)
|
||||
business_logger.debug(f"检查邮箱是否已注册: {user.email}")
|
||||
db_user_by_email = user_repository.get_user_by_email(db, email=user.email)
|
||||
if db_user_by_email:
|
||||
@@ -164,22 +153,7 @@ def create_superuser(db: Session, user: UserCreate, current_user: User) -> User:
|
||||
)
|
||||
|
||||
try:
|
||||
# 检查用户名是否已存在
|
||||
business_logger.debug(f"检查用户名是否已存在: {user.username}")
|
||||
db_user_by_username = user_repository.get_user_by_username(db, username=user.username)
|
||||
if db_user_by_username:
|
||||
business_logger.warning(f"用户名已存在: {user.username}")
|
||||
raise BusinessException(
|
||||
"用户名已存在",
|
||||
code=BizCode.DUPLICATE_NAME,
|
||||
context={
|
||||
"username": user.username,
|
||||
"email": user.email,
|
||||
"created_by": str(current_user.id)
|
||||
}
|
||||
)
|
||||
|
||||
# 检查邮箱是否已注册
|
||||
# 检查邮箱是否已注册(邮箱保持唯一)
|
||||
business_logger.debug(f"检查邮箱是否已注册: {user.email}")
|
||||
db_user_by_email = user_repository.get_user_by_email(db, email=user.email)
|
||||
if db_user_by_email:
|
||||
|
||||
Reference in New Issue
Block a user