瀏覽代碼

feat: super-admin (first one to signup)

Timothy J. Baek 1 年之前
父節點
當前提交
68cfccedee
共有 2 個文件被更改,包括 8 次插入1 次删除
  1. 7 0
      backend/apps/web/models/users.py
  2. 1 1
      backend/apps/web/routers/users.py

+ 7 - 0
backend/apps/web/models/users.py

@@ -123,6 +123,13 @@ class UsersTable:
     def get_num_users(self) -> Optional[int]:
         return User.select().count()
 
+    def get_first_user(self) -> UserModel:
+        try:
+            user = User.select().order_by(User.created_at).first()
+            return UserModel(**model_to_dict(user))
+        except:
+            return None
+
     def update_user_role_by_id(self, id: str, role: str) -> Optional[UserModel]:
         try:
             query = User.update(role=role).where(User.id == id)

+ 1 - 1
backend/apps/web/routers/users.py

@@ -58,7 +58,7 @@ async def update_user_permissions(
 @router.post("/update/role", response_model=Optional[UserModel])
 async def update_user_role(form_data: UserRoleUpdateForm, user=Depends(get_admin_user)):
 
-    if user.id != form_data.id:
+    if user.id != form_data.id and form_data.id != Users.get_first_user().id:
         return Users.update_user_role_by_id(form_data.id, form_data.role)
 
     raise HTTPException(