Beispiel #1
0
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)
Beispiel #3
0
 def __init__(self, **kwargs):
     FormView.__init__(self, **kwargs)
     self.control = LoginControl(LoginModel())
Beispiel #4
0
# -*- 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/')