| 
					
				 | 
			
			
				@@ -3455,3 +3455,101 @@ class AppleAuthLogin(View): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             print('---') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             print(user_qs) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return self.do_login(user_qs, response) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class LocalUserView(View): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def get(self, request, *args, **kwargs): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request.encoding = 'utf-8' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request_dict = request.GET 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        operation = kwargs.get('operation', None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return self.validate(request_dict, operation, CommonService.get_ip_address(request)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def post(self, request, *args, **kwargs): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request.encoding = 'utf-8' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        request_dict = request.POST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        operation = kwargs.get('operation', None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return self.validate(request_dict, operation, CommonService.get_ip_address(request)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def validate(self, request_dict, operation, ip): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        language = request_dict.get('language', None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        response = ResponseObject(lang=language) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        print(CommonService.getAddr(ip)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if operation == 'login': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return self.do_local_login(request_dict, response) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return response.json(404) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def do_local_login(self, request_dict, response): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        username = request_dict.get('username', None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        app_bundle_id = request_dict.get('app_bundle_id', None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        user_qs = Device_User.objects.filter(username=username) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if user_qs.exists(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return self.do_login(user_qs, response) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            # 如果用户为绑定过则创建用户并进行登录返回token 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            userID = CommonService.getUserID(μs=False, setOTAID=True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            nickname = 'local_{num}'.format(num=CommonService.RandomStr(6, False)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return self.do_register(userID, nickname, response, app_bundle_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # 登录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def do_login(self, user_qs, response): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        userID = user_qs[0].userID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        print('userID' + userID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tko = TokenObject() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        user_list = user_qs.values("NickName", "userIconUrl", "userIconPath", "username", "userEmail", "phone") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res = tko.generate(data={'userID': userID, 'lang': response.lang, 'user': user_list[0]["username"]}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # 增加角色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        user_qs[0].role.add(Role.objects.get(rid=1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        role_dict = ModelService.own_role(userID=userID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res['rid'] = role_dict['rid'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res['roleName'] = role_dict['roleName'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res['permList'] = ModelService.own_permission(userID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res['userID'] = userID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # 昵称,邮箱,电话,刷新,头像 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        userIconPath = str(user_list[0]["userIconPath"]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if userIconPath and userIconPath.find('static/') != -1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            userIconPath = userIconPath.replace('static/', '').replace('\\', '/') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            res['userIconUrl'] = SERVER_DOMAIN + 'account/getAvatar/' + userIconPath 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            res['userIconUrl'] = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res['NickName'] = user_list[0]["NickName"] if user_list[0]["NickName"] is not None else '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res['username'] = user_list[0]["username"] if user_list[0]["username"] is not None else '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res['userEmail'] = user_list[0]["userEmail"] if user_list[0]["userEmail"] is not None else '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res['phone'] = user_list[0]["phone"] if user_list[0]["phone"] is not None else '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        print(res) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # 添加用户登录类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        oauth_qs = UserOauth2Model.objects.filter(userID__userID=userID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        auth_type = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if oauth_qs.exists(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            auth_type = oauth_qs[0].authType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        res['authType'] = auth_type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        user_qs.update(last_login=now_time, online=True) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return response.json(0, res) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def do_register(self, userID, nickname, response, appBundleId): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        data_valid = DataValid() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if data_valid.name_validate(userID) is not True: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return response.json(105) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Device_User.objects.create( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                username=userID, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                NickName=nickname, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                password=make_password('123456'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                userID=userID, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                is_active=True, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                user_isValid=True, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                is_local=True 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        except Exception as e: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            errorInfo = traceback.format_exc() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            print(errorInfo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return response.json(424, repr(e)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            user_qs = Device_User.objects.filter(Q(userID=userID)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            print('---') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            print(user_qs) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return self.do_login(user_qs, response) 
			 |