class LoginView(FormView): """ Classe responsável por exibir a tela de login ao usuário, fazendo a validação do formulário, e estabelecer a sessão caso o usuário seja válido. """ context_object_name = "context" form_class = LoginData success_url = '/' def __init__(self, **kwargs): FormView.__init__(self, **kwargs) self.control = LoginControl(LoginModel()) def post(self, request, *args, **kwargs): form_class = self.get_form_class() form = self.get_form(form_class) code = 0 if form.is_valid(): lg = self.control.login(form.cleaned_data["user"], form.cleaned_data["password"]) if lg: LoginView.success_url = \ request.GET.get("redirect_to", '/dash/') return self.form_valid(form) else: code = code | 4 else: if form["user"].errors: code = code | 1 if form["password"].errors: code = code | 2 form.error_code = code return self.form_invalid(form)
def process_view(self, request, view_func, *view_args, **view_kwargs): """ Metodo sobrecarregado que é chamado pela API Django, neste método é feita a verificação do login e redirecionamento caso seja necessário, também é feita a exclusão de urls que casam com os padrões setados em TO_EXCLUDE """ LoginControl.session = request.session lc = LoginControl(LoginModel()) vget = request.path if (lc.current() is None) and not self.to_exclude(vget): url = "/login/" if (vget is not None) and (vget not in NO_REDIRECT): url += r"?" + "redirect_to=" + vget return HttpResponseRedirect(url)
def __init__(self, **kwargs): FormView.__init__(self, **kwargs) self.control = LoginControl(LoginModel())
# -*- coding: utf-8 -*- from django.http.response import HttpResponseRedirect from daem.auth.control.LoginControl import LoginControl from daem.auth.model.LoginModel import LoginModel # from django.views.generic.base import View control = LoginControl(LoginModel()) def logout(request): """ função responsável por fazer logout """ control.logout() return HttpResponseRedirect('/login/') def index(request, **kwargs): current = control.current() if current is not None: ret = HttpResponseRedirect('/dash/') return ret else: return HttpResponseRedirect('/login/')