Ejemplo n.º 1
0
 def get(self, request):
     print(dir(request))
     user_id = request.session.get('backs_user_id', None)
     token = request.session.get('backs_token', None)
     #如果session有效,则跳转到后台首页
     if user_id and token and token == backs_token(user_id):
         self.NEXT_PATH = self.request.GET.get('next') if bool(
             self.request.GET.get('next')) else self.NEXT_PATH
         return redirect(self.NEXT_PATH)
     return render(request, self.template_name)
Ejemplo n.º 2
0
 def is_login(self, *args, **kwargs):
     token = self.request.session.get('backs_token', None)
     self.user = self.request.user
     self.username = self.request.session.get('backs_username', None)
     self.user_id = self.request.session.get('backs_user_id', None)
     if not self.user_id or token != backs_token(
             self.user_id) or not self.user:
         url = BACKS_LOGIN_URL
         if self.request.path.count("next") > 3:
             return redirect(url)
         if "?" not in url:
             url += "?" + urllib.urlencode(dict(next=self.request.path))
         return redirect(url)
     return view_func(self, *args, **kwargs)
Ejemplo n.º 3
0
 def post(self, request, template_name='backs/login.html'):
     username = self.request.POST.get("username", None)
     password = self.request.POST.get("password", None)
     user = authenticate(username=username, password=password)
     if user and user.is_active:
         user.last_login = datetime.now()
         user.save()
         self.request.session["backs_username"] = user.username
         self.request.session["backs_user_id"] = user.id
         self.request.session["backs_token"] = backs_token(user.id)
         self.request.session["backs_role"] = str(
             1 if user.is_superuser else 0)  #权限级别
         #登录记录
         self.NEXT_PATH = self.request.GET.get('next') if bool(
             self.request.GET.get('next')) else self.NEXT_PATH
         return redirect(self.NEXT_PATH)
     return render(request, self.template_name)