def form_valid(self, form): user = authenticate(username=form.cleaned_data.get('username'), password=form.cleaned_data.get('password')) if user is not None: if user.is_active: # 用户登陆 auth_login(self.request, user) # 重定向 return super().form_valid(form) else: # 用户验证不成功 form.add_error(None, '用户名或密码不正确') context = {} response = TemplateResponse(self.request, self.template_name, context) # print(response.context_data) # 如果勾选了记住用户名,则保存到Cookies中, key=mark_name, 如果未勾选,设置mark_name 为空 username = self.request.POST.get('username') if self.request.POST.get('mark_name') == '1': response.set_signed_cookie('mark_name', username) else: response.delete_cookie('mark_name') username = '' context = {'form': form, 'mark_name': username} response.context_data = context return response
def reauth (request): da = DriveAuth(request) creds = da.get_credentials(check_cookie=False) if creds is None: return da.redirect_auth() response = TemplateResponse(request, 'main/reauth.html', {}) expires = datetime.datetime.utcnow() + datetime.timedelta(seconds=settings.MAX_AGE) response.set_signed_cookie(settings.USERID_COOKIE, value=da.userid, salt=settings.SALT) return response
def form_invalid(self, form): context = {} response = TemplateResponse(self.request, self.template_name, context) # 如果勾选了记住用户名,则保存到Cookies中, key=mark_name username = self.request.POST.get('username') if self.request.POST.get('mark_name') == '1': response.set_signed_cookie('mark_name', username) else: response.delete_cookie('mark_name') username = '' context = {'form': form, 'mark_name': username} response.context_data = context return response
def edit (request): da = DriveAuth(request) creds = da.get_credentials(check_cookie=False) if creds is None: return da.redirect_auth() #code = request.REQUEST.get('code', '') #if code: # response = http.HttpResponseRedirect(reverse('edit')) # #else: state = request.REQUEST.get('state', '') open_ids = [] new_in = None if state: state = json.loads(state) if state["action"] == 'open': open_ids = state["ids"] elif state["action"] == 'create': new_in = state['parentId'] if da.prefs.save_session and da.prefs.session: for oid in da.prefs.session.split(','): if oid not in open_ids: open_ids.append(oid) c = { 'MODES': MODES, 'NDEBUG': settings.NDEBUG, 'CLIENT_ID': settings.GOOGLE_API_CLIENT_ID.split('.')[0], 'prefs': da.prefs, 'themes': ETHEMES, 'sizes': ESIZES, 'binds': EKBINDS, 'wraps': EWRAPS, 'open_ids': open_ids, 'new_in': new_in, } response = TemplateResponse(request, 'main/edit.html', c) expires = datetime.datetime.utcnow() + datetime.timedelta(seconds=settings.MAX_AGE) response.set_signed_cookie(settings.USERID_COOKIE, value=da.userid, salt=settings.SALT) return response
def home (request): da = DriveAuth(request) creds = da.get_credentials(check_cookie=False) if creds is None: return da.redirect_auth() c = { 'CLIENT_ID': settings.PRIV_GOOGLE_API_CLIENT_ID.split('.')[0], } response = TemplateResponse(request, 'editor.html', c) expires = datetime.utcnow() + timedelta(seconds=settings.MAX_AGE) response.set_signed_cookie( settings.USERID_COOKIE, value=da.userid, salt=settings.PRIV_SALT ) return response
def reauth(request): da = DriveAuth(request) creds = da.get_credentials(check_cookie=False) if creds is None: return da.redirect_auth() response = TemplateResponse(request, 'main/reauth.html', {}) expires = datetime.datetime.utcnow() + datetime.timedelta( seconds=settings.MAX_AGE) response.set_signed_cookie( settings.USERID_COOKIE, value=da.userid, salt=settings.SALT, expires=expires, secure=settings.CSRF_COOKIE_SECURE, httponly=False, ) return response
def login(request): template_name = 'user/login.html' success_url = reverse_lazy('user:user_center_info') # 跳转到用户中心 if request.method == 'GET': return render( request, template_name, {'mark_name': request.get_signed_cookie('mark_name', '')}) else: username = request.POST.get('username') form = UserLoginForm(request.POST) if form.is_valid(): user = authenticate(username=form.cleaned_data['username'], password=form.cleaned_data['password']) if user is not None: if user.is_active: # 登陆 auth_login(request, user) # 重定向, 获取装饰器login_required 的next参数,实现跳转到登陆之前的路径 success_url = request.GET.get('next', success_url) response = redirect(success_url) # 记住用户名功能 if request.POST.get('mark_name') == '1': response.set_signed_cookie('mark_name', username) else: response.delete_cookie('mark_name') return response else: form.add_error(None, '用户名或密码不正确') # 页面记住用户名功能,把用户名存在cookie里 response = TemplateResponse(request, template_name, {}) if request.POST.get('mark_name') == '1': response.set_signed_cookie('mark_name', username) else: response.delete_cookie('mark_name') username = '' response.context_data = {'form': form, 'mark_name': username} return response
def edit(request): error = request.REQUEST.get('error', '') if error == 'access_denied': return TemplateResponse(request, 'main/access_denied.html', {}) da = DriveAuth(request) creds = da.get_credentials(check_cookie=False) if creds is None: return da.redirect_auth() state = request.REQUEST.get('state', '') open_ids = [] new_in = None if state: state = json.loads(state) if state["action"] == 'open': if "exportIds" in state: return TemplateResponse(request, 'main/not_supported.html', {}) elif "ids" in state: open_ids = state["ids"] elif state["action"] == 'create' and "parentId" in state: new_in = state['parentId'] if da.prefs.save_session and da.prefs.session: for oid in da.prefs.session.split(','): if oid not in open_ids: open_ids.append(oid) recent_files = OrderedDict() for f in FileOpen.all().filter("userid =", da.userid).order("-created").fetch(30): if f.fileid not in recent_files: recent_files[f.fileid] = f.filename if len(recent_files) >= 10: break c = { 'MODES': MODES, 'NDEBUG': settings.NDEBUG, 'CLIENT_ID': settings.GOOGLE_API_CLIENT_ID.split('.')[0], 'prefs': da.prefs, 'themes': ETHEMES, 'sizes': ESIZES, 'binds': EKBINDS, 'wraps': EWRAPS, 'open_ids': open_ids, 'new_in': new_in, 'recent_files': recent_files } response = TemplateResponse(request, 'main/edit.html', c) expires = datetime.datetime.utcnow() + datetime.timedelta( seconds=settings.MAX_AGE) response.set_signed_cookie( settings.USERID_COOKIE, value=da.userid, salt=settings.SALT, expires=expires, secure=settings.CSRF_COOKIE_SECURE, httponly=False, ) return response
def edit (request): error = request.REQUEST.get('error', '') if error == 'access_denied': return TemplateResponse(request, 'main/access_denied.html', {}) da = DriveAuth(request) creds = da.get_credentials(check_cookie=False) if creds is None: return da.redirect_auth() state = request.REQUEST.get('state', '') open_ids = [] new_in = None if state: state = json.loads(state) if state["action"] == 'open': if "exportIds" in state: return TemplateResponse(request, 'main/not_supported.html', {}) elif "ids" in state: open_ids = state["ids"] elif state["action"] == 'create' and "parentId" in state: new_in = state['parentId'] if da.prefs.save_session and da.prefs.session: for oid in da.prefs.session.split(','): if oid not in open_ids: open_ids.append(oid) recent_files = OrderedDict() for f in FileOpen.all().filter("userid =", da.userid).order("-created").fetch(30): if f.fileid not in recent_files: recent_files[f.fileid] = f.filename if len(recent_files) >= 10: break c = { 'MODES': MODES, 'NDEBUG': settings.NDEBUG, 'CLIENT_ID': settings.GOOGLE_API_CLIENT_ID.split('.')[0], 'prefs': da.prefs, 'themes': ETHEMES, 'sizes': ESIZES, 'binds': EKBINDS, 'wraps': EWRAPS, 'open_ids': open_ids, 'new_in': new_in, 'recent_files': recent_files } response = TemplateResponse(request, 'main/edit.html', c) expires = datetime.datetime.utcnow() + datetime.timedelta(seconds=settings.MAX_AGE) response.set_signed_cookie( settings.USERID_COOKIE, value=da.userid, salt=settings.SALT, expires=expires, secure=settings.CSRF_COOKIE_SECURE, httponly=False, ) return response