Exemple #1
0
    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
Exemple #2
0
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
Exemple #3
0
    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
Exemple #4
0
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
Exemple #5
0
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
Exemple #6
0
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
Exemple #7
0
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
Exemple #8
0
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
Exemple #9
0
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