|
@@ -133,6 +133,84 @@ class LoginView(TemplateView):
|
|
|
|
|
|
|
|
|
|
|
|
+# 登录
|
|
|
+class noPasslogin(TemplateView):
|
|
|
+ @method_decorator(csrf_exempt) # @csrf_exempt
|
|
|
+ def dispatch(self, *args, **kwargs):
|
|
|
+ return super(noPasslogin, self).dispatch(*args, **kwargs)
|
|
|
+
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ request_dict = request.POST
|
|
|
+ language = request_dict.get('language', 'en')
|
|
|
+ response = ResponseObject(language,'pc')
|
|
|
+
|
|
|
+ return self.validates(request_dict, response)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ def validates(self, request_dict, response):
|
|
|
+ username = request_dict.get('username', None)
|
|
|
+ if not username:
|
|
|
+ return response.json(111)
|
|
|
+ username = username.strip()
|
|
|
+ data_valid = DataValid()
|
|
|
+ if data_valid.email_validate(username):
|
|
|
+ return self.do_email_login(username, response)
|
|
|
+ elif data_valid.mobile_validate(username):
|
|
|
+ return self.do_phone_login(username, response)
|
|
|
+ elif data_valid.name_validate(username):
|
|
|
+ return self.do_name_login(username, response)
|
|
|
+ else:
|
|
|
+ return response.json(107)
|
|
|
+
|
|
|
+ def do_email_login(self, email, response):
|
|
|
+ user_qs = Device_User.objects.filter(Q(username=email))
|
|
|
+ return self.valid_login(user_qs, response)
|
|
|
+
|
|
|
+ def do_phone_login(self, phone, response):
|
|
|
+ user_qs = Device_User.objects.filter(Q(phone=phone), is_active=True, user_isValid=True)
|
|
|
+ return self.valid_login(user_qs, response)
|
|
|
+
|
|
|
+ def do_name_login(self, username, response):
|
|
|
+ user_qs = Device_User.objects.filter(Q(username=username) | Q(phone=username) | Q(userEmail=username),
|
|
|
+ is_active=True, user_isValid=True)
|
|
|
+ return self.valid_login(user_qs, response)
|
|
|
+
|
|
|
+ def valid_login(self, user_qs, response):
|
|
|
+ if not user_qs.exists():
|
|
|
+ return response.json(104)
|
|
|
+ # users = user_qs.values('role__rid', 'role__roleName', 'userID', 'role', 'NickName', 'username', 'userEmail',
|
|
|
+ # 'phone', 'password', 'userIconPath', 'user_isValid', 'is_active')[0]
|
|
|
+ users = user_qs.values('role__rid', 'role__roleName', 'userID', 'NickName', 'username', 'userEmail',
|
|
|
+ 'phone', 'password', 'userIconPath')[0]
|
|
|
+
|
|
|
+ userID = users['userID']
|
|
|
+ tko = TokenObject(returntpye='pc')
|
|
|
+ res = tko.generate(
|
|
|
+ data={'userID': userID, 'lang': response.lang, 'user': users['username'], 'm_code': '123413243214'})
|
|
|
+ if tko.code == 0:
|
|
|
+ now_time = datetime.datetime.utcnow().replace(tzinfo=utc).astimezone(utc)
|
|
|
+ user_qs.update(last_login=now_time, language=response.lang)
|
|
|
+ res['rid'] = users['role__rid']
|
|
|
+ res['roleName'] = users['role__roleName']
|
|
|
+ res['permList'] = ModelService.own_permission(userID)
|
|
|
+ res['userID'] = userID
|
|
|
+ # 昵称,邮箱,电话,刷新,头像
|
|
|
+ userIconPath = str(users['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'] = users['NickName'] if users['NickName'] is not None else ''
|
|
|
+ res['username'] = users['username'] if users['username'] 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 ''
|
|
|
+ return response.json(0, res)
|
|
|
+ else:
|
|
|
+ return response.json(tko.code)
|
|
|
+
|
|
|
|
|
|
# 获取登录权限
|
|
|
class GetPermissions(TemplateView):
|