Browse Source

编辑,删除用户

locky 4 years ago
parent
commit
40c7661030
1 changed files with 49 additions and 17 deletions
  1. 49 17
      AdminController/UserManageController.py

+ 49 - 17
AdminController/UserManageController.py

@@ -305,8 +305,8 @@ class UserManagement(View):
             userID = tko.userID
             if operation == 'getUserInfo':
                 return self.getUserInfo(userID, request_dict, response)
-            elif operation == 'registerAccount':
-                return self.registerAccount(userID, request_dict, response)
+            elif operation == 'AddOrEditAccount':
+                return self.AddOrEditAccount(userID, request_dict, response)
             elif operation == 'doDelete':
                 return self.doDelete(userID, request_dict, response)
             else:
@@ -345,7 +345,7 @@ class UserManagement(View):
             user_list = []
             for device_user in device_users:
                 role = device_user.role.first()
-                rid = role.rid if role else 1   # 不存在角色默认分配为'用户'
+                rid = role.rid if role else 1   # 不存在角色默认分配为'Users'
                 user_list.append({
                     'userID': device_user.userID,
                     'username': device_user.username,
@@ -363,12 +363,16 @@ class UserManagement(View):
             print(e)
             return response.json(500, repr(e))
 
-    def registerAccount(self, userID, request_dict, response):
+    def AddOrEditAccount(self, userID, request_dict, response):
+        # 添加/编辑用户
+        print('request_dict: ', request_dict)
         username = request_dict.get('username', '').strip()   # 移除字符串头尾的空格
         userEmail = request_dict.get('userEmail', '').strip()
+        roleName = request_dict.get('role', None)
         password = request_dict.get('password', None)
+        isEdit = request_dict.get('isEdit', None)
 
-        if not all([username, password]):
+        if not all([username, userEmail, roleName, password]):
             return response.json(444)
 
         # 校验用户名,邮箱,密码是否符合规则
@@ -378,18 +382,46 @@ class UserManagement(View):
             return response.json(444)
 
         try:
-            # 查询用户是否已存在
-            # 创建账户信息
-            user_data = {
-                "username": username,
-                "NickName": username,
-                "userEmail": userEmail,
-                "password": make_password(password),
-                "userID": CommonService.getUserID(μs=False, setOTAID=True),
-                "is_active": True,
-                "user_isValid": True,
-            }
-            Device_User.objects.create(**user_data)
+            if isEdit:  # 编辑用户信息
+                userID = request_dict.get('userID')
+                user_data = {
+                    "username": username,
+                    "NickName": username,
+                    "userEmail": userEmail,
+                    "password": make_password(password),
+                }
+                device_user_qs = Device_User.objects.filter(userID=userID)
+                device_user_qs.update(**user_data)
+
+                # 如果角色改变,修改用户角色
+                device_user_role = device_user_qs[0].role
+                user_role = device_user_role.first()
+                if not user_role or roleName != user_role.roleName:
+                    device_user_role.clear()
+                    role_qs = Role.objects.filter(roleName=roleName)  # 账号角色
+                    device_user_qs[0].role.set(role_qs)
+            else:   # 添加用户
+                # 查询邮箱是否已注册
+                if Device_User.objects.filter(userEmail=userEmail).exists():
+                    return response.json(103)
+                role_qs = Role.objects.filter(roleName=roleName)    # 账号角色
+                # 创建用户
+                user_data = {
+                    "username": username,
+                    "NickName": username,
+                    "userEmail": userEmail,
+                    "password": make_password(password),
+                    "userID": CommonService.getUserID(μs=False, setOTAID=True),
+                    "is_active": True,
+                    "user_isValid": True,
+                }
+                Device_User.objects.create(**user_data).role.set(role_qs)
             return response.json(0)
         except Exception as e:
+            print(e)
             return response.json(500, repr(e))
+
+    def doDelete(self, userID, request_dict, response):
+        userID = request_dict.get('userID', '')
+        Device_User.objects.filter(userID=userID).delete()
+        return response.json(0)