|
@@ -1703,6 +1703,7 @@ class v3LoginView(TemplateView):
|
|
def validates(self, request_dict, response):
|
|
def validates(self, request_dict, response):
|
|
username = request_dict.get('userName', None)
|
|
username = request_dict.get('userName', None)
|
|
password = request_dict.get('userPwd', None)
|
|
password = request_dict.get('userPwd', None)
|
|
|
|
+ subscribe = request_dict.get('subscribe', None)
|
|
if not username or not password:
|
|
if not username or not password:
|
|
return response.json(111)
|
|
return response.json(111)
|
|
username = username.strip()
|
|
username = username.strip()
|
|
@@ -1734,34 +1735,38 @@ class v3LoginView(TemplateView):
|
|
else:
|
|
else:
|
|
data_valid = DataValid()
|
|
data_valid = DataValid()
|
|
if data_valid.email_validate(username):
|
|
if data_valid.email_validate(username):
|
|
- return self.do_email_login(username, password, response)
|
|
|
|
|
|
+ return self.do_email_login(username, password, response, subscribe)
|
|
elif data_valid.mobile_validate(username):
|
|
elif data_valid.mobile_validate(username):
|
|
- return self.do_phone_login(username, password, response)
|
|
|
|
|
|
+ return self.do_phone_login(username, password, response, subscribe)
|
|
elif data_valid.name_validate(username):
|
|
elif data_valid.name_validate(username):
|
|
- return self.do_name_login(username, password, response)
|
|
|
|
|
|
+ return self.do_name_login(username, password, response, subscribe)
|
|
else:
|
|
else:
|
|
return response.json(107)
|
|
return response.json(107)
|
|
|
|
|
|
- def do_email_login(self, email, password, response):
|
|
|
|
|
|
+ def do_email_login(self, email, password, response, subscribe):
|
|
user_qs = Device_User.objects.filter(Q(username=email) | Q(userEmail=email))
|
|
user_qs = Device_User.objects.filter(Q(username=email) | Q(userEmail=email))
|
|
- return self.valid_login(user_qs, password, response)
|
|
|
|
|
|
+ return self.valid_login(user_qs, password, response, subscribe)
|
|
|
|
|
|
- def do_phone_login(self, phone, password, response):
|
|
|
|
|
|
+ def do_phone_login(self, phone, password, response, subscribe):
|
|
user_qs = Device_User.objects.filter(Q(phone=phone) | Q(username=phone), is_active=True, user_isValid=True)
|
|
user_qs = Device_User.objects.filter(Q(phone=phone) | Q(username=phone), is_active=True, user_isValid=True)
|
|
- return self.valid_login(user_qs, password, response)
|
|
|
|
|
|
+ return self.valid_login(user_qs, password, response, subscribe)
|
|
|
|
|
|
- def do_name_login(self, username, password, response):
|
|
|
|
|
|
+ def do_name_login(self, username, password, response, subscribe):
|
|
user_qs = Device_User.objects.filter(Q(username=username) | Q(phone=username) | Q(userEmail=username),
|
|
user_qs = Device_User.objects.filter(Q(username=username) | Q(phone=username) | Q(userEmail=username),
|
|
is_active=True, user_isValid=True)
|
|
is_active=True, user_isValid=True)
|
|
- return self.valid_login(user_qs, password, response)
|
|
|
|
|
|
+ return self.valid_login(user_qs, password, response, subscribe)
|
|
|
|
|
|
- def valid_login(self, user_qs, password, response):
|
|
|
|
|
|
+ def valid_login(self, user_qs, password, response, subscribe):
|
|
if not user_qs.exists():
|
|
if not user_qs.exists():
|
|
return response.json(104)
|
|
return response.json(104)
|
|
# users = user_qs.values('role__rid', 'role__roleName', 'userID', 'role', 'NickName', 'username', 'userEmail',
|
|
# users = user_qs.values('role__rid', 'role__roleName', 'userID', 'role', 'NickName', 'username', 'userEmail',
|
|
# 'phone', 'password', 'userIconPath', 'user_isValid', 'is_active')[0]
|
|
# 'phone', 'password', 'userIconPath', 'user_isValid', 'is_active')[0]
|
|
|
|
+ if subscribe:
|
|
|
|
+ user_qs.update(subscribe_email=subscribe)
|
|
|
|
+
|
|
users = user_qs.values('role__rid', 'role__roleName', 'userID', 'NickName', 'username', 'userEmail',
|
|
users = user_qs.values('role__rid', 'role__roleName', 'userID', 'NickName', 'username', 'userEmail',
|
|
- 'phone', 'password', 'userIconPath', 'fingerprint_enable', 'fingerprint_key')[0]
|
|
|
|
|
|
+ 'phone', 'password', 'userIconPath', 'fingerprint_enable', 'fingerprint_key',
|
|
|
|
+ 'subscribe_email')[0]
|
|
if not check_password(password, users['password']):
|
|
if not check_password(password, users['password']):
|
|
return response.json(111)
|
|
return response.json(111)
|
|
userID = users['userID']
|
|
userID = users['userID']
|
|
@@ -1794,6 +1799,7 @@ class v3LoginView(TemplateView):
|
|
# res['fingerprint_enable'] = users['fingerprint_enable']
|
|
# res['fingerprint_enable'] = users['fingerprint_enable']
|
|
# res['fingerprint_key'] = CommonService.encode_data(content=users['fingerprint_key'], start=2)
|
|
# res['fingerprint_key'] = CommonService.encode_data(content=users['fingerprint_key'], start=2)
|
|
res['authType'] = auth_type
|
|
res['authType'] = auth_type
|
|
|
|
+ res['subscribe_email'] = users['subscribe_email'] if users['subscribe_email'] is not None else ''
|
|
return response.json(0, res)
|
|
return response.json(0, res)
|
|
else:
|
|
else:
|
|
return response.json(tko.code)
|
|
return response.json(tko.code)
|
|
@@ -1931,6 +1937,7 @@ class InitInfoView(View):
|
|
else:
|
|
else:
|
|
return response.json(444)
|
|
return response.json(444)
|
|
|
|
|
|
|
|
+
|
|
# 获取验证码
|
|
# 获取验证码
|
|
class verifyAuthcode(TemplateView):
|
|
class verifyAuthcode(TemplateView):
|
|
|
|
|
|
@@ -2173,7 +2180,8 @@ class wxPerfectView(TemplateView):
|
|
'com.ansjer.loocamccloud': {'appid': 'wx9f6d6ce63f85b367',
|
|
'com.ansjer.loocamccloud': {'appid': 'wx9f6d6ce63f85b367',
|
|
'secret': 'fe495884cd24637f1ae516c7f53d1b97', },
|
|
'secret': 'fe495884cd24637f1ae516c7f53d1b97', },
|
|
'com.ansjer.zccloud': {'appid': 'wx2a9f5ef9baf2760f', 'secret': '5d38c7079676463149ffea593c58f2ed'},
|
|
'com.ansjer.zccloud': {'appid': 'wx2a9f5ef9baf2760f', 'secret': '5d38c7079676463149ffea593c58f2ed'},
|
|
- 'com.ansjer.customizede': {'appid':'wx2a9f5ef9baf2760f', 'secret': '5d38c7079676463149ffea593c58f2ed'},
|
|
|
|
|
|
+ 'com.ansjer.customizede': {'appid': 'wx2a9f5ef9baf2760f',
|
|
|
|
+ 'secret': '5d38c7079676463149ffea593c58f2ed'},
|
|
# android
|
|
# android
|
|
'com.ansjer.zccloud_ab': {'appid': 'wx2a9f5ef9baf2760f',
|
|
'com.ansjer.zccloud_ab': {'appid': 'wx2a9f5ef9baf2760f',
|
|
'secret': '5d38c7079676463149ffea593c58f2ed'},
|
|
'secret': '5d38c7079676463149ffea593c58f2ed'},
|
|
@@ -3303,7 +3311,8 @@ class v3LoginByFingerprintView(View):
|
|
return response.json(104)
|
|
return response.json(104)
|
|
else:
|
|
else:
|
|
users = user_qs.values('role__rid', 'role__roleName', 'userID', 'NickName', 'username', 'userEmail',
|
|
users = user_qs.values('role__rid', 'role__roleName', 'userID', 'NickName', 'username', 'userEmail',
|
|
- 'phone', 'password', 'userIconPath', 'fingerprint_enable', 'fingerprint_key')[0]
|
|
|
|
|
|
+ 'phone', 'password', 'userIconPath', 'fingerprint_enable',
|
|
|
|
+ 'fingerprint_key')[0]
|
|
if users['fingerprint_enable'] == 0:
|
|
if users['fingerprint_enable'] == 0:
|
|
return response.json(112)
|
|
return response.json(112)
|
|
else:
|
|
else:
|
|
@@ -3331,7 +3340,8 @@ class v3LoginByFingerprintView(View):
|
|
res['userEmail'] = users['userEmail'] if users['userEmail'] is not None else ''
|
|
res['userEmail'] = users['userEmail'] if users['userEmail'] is not None else ''
|
|
res['phone'] = users['phone'] if users['phone'] is not None else ''
|
|
res['phone'] = users['phone'] if users['phone'] is not None else ''
|
|
res['fingerprint_enable'] = users['fingerprint_enable']
|
|
res['fingerprint_enable'] = users['fingerprint_enable']
|
|
- res['fingerprint_key'] = CommonService.encode_data(content=users['fingerprint_key'], start=2)
|
|
|
|
|
|
+ res['fingerprint_key'] = CommonService.encode_data(content=users['fingerprint_key'],
|
|
|
|
+ start=2)
|
|
return response.json(0, res)
|
|
return response.json(0, res)
|
|
else:
|
|
else:
|
|
return response.json(tko.code)
|
|
return response.json(tko.code)
|
|
@@ -3420,7 +3430,8 @@ class AppleAuthLogin(View):
|
|
|
|
|
|
if key_object:
|
|
if key_object:
|
|
try:
|
|
try:
|
|
- claims = jwt.decode(identity_token, key=key_object, verify=True, algorithms=[alg], audience=app_bundle_id)
|
|
|
|
|
|
+ claims = jwt.decode(identity_token, key=key_object, verify=True, algorithms=[alg],
|
|
|
|
+ audience=app_bundle_id)
|
|
unionID = claims['sub']
|
|
unionID = claims['sub']
|
|
print(claims)
|
|
print(claims)
|
|
user_extend_qs = UserOauth2Model.objects.filter(unionID=unionID, authType=2)
|
|
user_extend_qs = UserOauth2Model.objects.filter(unionID=unionID, authType=2)
|
|
@@ -3528,8 +3539,8 @@ class LocalUserView(View):
|
|
request.encoding = 'utf-8'
|
|
request.encoding = 'utf-8'
|
|
request_dict = request.POST
|
|
request_dict = request.POST
|
|
operation = kwargs.get('operation', None)
|
|
operation = kwargs.get('operation', None)
|
|
- print('start_time='+ str((time.time())))
|
|
|
|
- ip=CommonService.get_ip_address(request)
|
|
|
|
|
|
+ print('start_time=' + str((time.time())))
|
|
|
|
+ ip = CommonService.get_ip_address(request)
|
|
print('end_time=' + str((time.time())))
|
|
print('end_time=' + str((time.time())))
|
|
return self.validate(request_dict, operation)
|
|
return self.validate(request_dict, operation)
|
|
|
|
|
|
@@ -3619,6 +3630,40 @@ class LocalUserView(View):
|
|
return self.do_login(user_qs, response)
|
|
return self.do_login(user_qs, response)
|
|
|
|
|
|
|
|
|
|
|
|
+class SubscribeEmailView(View):
|
|
|
|
+
|
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
|
+ request.encoding = 'utf-8'
|
|
|
|
+ request_dict = request.GET
|
|
|
|
+ return self.validate(request_dict)
|
|
|
|
+
|
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
|
+ request.encoding = 'utf-8'
|
|
|
|
+ request_dict = request.POST
|
|
|
|
+ return self.validate(request_dict)
|
|
|
|
+
|
|
|
|
+ def validate(self, request_dict):
|
|
|
|
+ token = request_dict.get('token', None)
|
|
|
|
+ lang = request_dict.get('lang', None)
|
|
|
|
+ token = TokenObject(token)
|
|
|
|
+
|
|
|
|
+ response = ResponseObject(lang=lang)
|
|
|
|
+ if token.code != 0:
|
|
|
|
+ return response.json(token.code)
|
|
|
|
+
|
|
|
|
+ status = request_dict.get('subscribe', None)
|
|
|
|
+ if status is None:
|
|
|
|
+ return response.json(444)
|
|
|
|
+
|
|
|
|
+ status = int(status)
|
|
|
|
+ user_qs = Device_User.objects.filter(userID=token.userID)
|
|
|
|
+ if user_qs.exists():
|
|
|
|
+ user_qs.update(subscribe_email=status)
|
|
|
|
+ return response.json(0)
|
|
|
|
+ else:
|
|
|
|
+ return response.json(104)
|
|
|
|
+
|
|
|
|
+
|
|
def delete_local_account(username):
|
|
def delete_local_account(username):
|
|
user_qs = Device_User.objects.filter(username=username)
|
|
user_qs = Device_User.objects.filter(username=username)
|
|
print(user_qs)
|
|
print(user_qs)
|
|
@@ -3633,7 +3678,6 @@ def updateUserCountry(request):
|
|
country_ip_qs = CountryIPModel.objects.filter(status=0)[0: 100]
|
|
country_ip_qs = CountryIPModel.objects.filter(status=0)[0: 100]
|
|
if country_ip_qs.exists():
|
|
if country_ip_qs.exists():
|
|
country_ip_qs = country_ip_qs.values()
|
|
country_ip_qs = country_ip_qs.values()
|
|
- ids = []
|
|
|
|
redisObject = RedisObject(db=6)
|
|
redisObject = RedisObject(db=6)
|
|
for country_ip in country_ip_qs:
|
|
for country_ip in country_ip_qs:
|
|
key = 'ip_country_{ip}'.format(ip=country_ip['ip'])
|
|
key = 'ip_country_{ip}'.format(ip=country_ip['ip'])
|
|
@@ -3650,4 +3694,4 @@ def updateUserCountry(request):
|
|
# ids.append(country_ip['id'])
|
|
# ids.append(country_ip['id'])
|
|
# CountryIPModel.objects.filter(id__in=tuple(ids)).update(status=1)
|
|
# CountryIPModel.objects.filter(id__in=tuple(ids)).update(status=1)
|
|
response = ResponseObject()
|
|
response = ResponseObject()
|
|
- return response.json(0)
|
|
|
|
|
|
+ return response.json(0)
|