예제 #1
0
def log_user_post(request):
    r"""
    Log the user with POST method (action). Checks if user is deactivated \
    0and if username or password are incorrect.
    """
    username = request.POST["username"]
    password = request.POST["password"]
    user = authenticate(username=username, password=password)
    if user is not None:
        if user.is_active:
            login(request, user)
            response = redirect('/', context_instance=RequestContext(request))
        else:
            response = modal_message(
                "Erro :(",
                "Usuário desativado.",
                "Esta usuário foi desativado.\
            Entre em contato com o suporte Busine.me para solicitar a\
             reativação.",
                "login_page.html", request)
    else:
        response = modal_message(
            "Erro :(",
            "Usuário não encontrado.",
            "Verifique se o nome de usuário e a senha informados estão\
             corretos.",
            "login_page.html", request)
    return response
예제 #2
0
def change_password_action(request):
    """Change user password checking for his current password."""
    if request.user.is_authenticated():
        user = request.user

    old_password = request.POST["old_password"]
    new_password1 = request.POST["new_password1"]
    new_password2 = request.POST["new_password2"]

    if not user.check_password(old_password):
        response = modal_message(
            "Erro :(",
            "Senha atual incorreta.",
            "Verifique a escrita da senha informada.",
            "change_password_page.html", request)
    else:
        if not (new_password1 == new_password2):
            response = modal_message(
                "Erro :(",
                "Os campos de nova senha não conferem.",
                "Verifique a escrita das senhas informadas.",
                "change_password_page.html", request)
        else:
            user.set_password(new_password1)
            user.save()
            response = redirect("/login/",
                                context_instance=RequestContext(request))
            logout(request)
    return response
예제 #3
0
def register_user(request):
    r"""
    Register the user if all the data inserted in the forms are valid. The \
    email has to be unique, and with "@" and a "." (dot). The username has to \
    be unique. Finally, no fields can be blank.
    """
    user = User()
    user.first_name = request.POST["name"]
    user.email = request.POST["email"]
    user.username = request.POST["username"]
    user.set_password(request.POST["password"])
    try:
        if not user.validate_unique_email():
            response = modal_message(
                "Erro :(",
                "Email ja cadastrado.", "O e-mail inserido já \
                está em uso. Utilize um e-mail diferente para realizar o \
                cadastro.",
                "register_user_page.html", request)
            return response
        response = redirect("/login/",
                            context_instance=RequestContext(request))
        if not user.validate_email():
            response = modal_message(
                "Erro :(",
                "E-mail inválido.",
                "Verifique o e-mail inserido. Ele deve conter os caracteres \
                '@' e '.' (ponto).",
                "register_user_page.html", request)
        if not user.validate_user_password(request.POST["password"]):
            response = modal_message(
                "Erro :(",
                "Campo de senha vazio.",
                "Não é possível realizar o cadastro com a senha vazia, insira\
                 uma por favor.",
                "register_user_page.html", request)

        if user.validate_email() and user.validate_unique_email() and \
                user.validate_user_password(request.POST["password"]):
            user.save()

    except IntegrityError:
        if not user.validate_user_name():
            response = modal_message(
                "Erro :(",
                "Usuário já cadastrado.",
                "O nome de usuário inserido já está em uso.",
                "register_user_page.html", request)

    return response
def advanced_search_busline(request):
    r"""
    Perform an advanced search for bus lines which contain the input values\
    entered by the user then returns the result page and the list of results.
    """
    if ((len(request.GET['busline_advanced']) < 2) and
            (len(request.GET['description']) < 2)):
        response = modal_message(
            "Erro :(",
            "Entrada inválida.",
            "Os campos preenchidos da busca avançada devem possuir \
            no mínimo 2 dígitos.",
            "search_result_page.html", request)
    else:
        buslines = Busline.filter_by_multiple(
            line_number=request.GET['busline_advanced'],
            description=request.GET['description'],
            terminal__description=''
        )
        count_busline = len(buslines)
        line_number = request.GET['busline_advanced']
        response = render_to_response(
            "search_result_page.html",
            {'buslines': buslines,
             'count_busline': count_busline,
             'searched_number': line_number,
             'description': request.GET['description']},
            context_instance=RequestContext(request))

    return response
예제 #5
0
def advanced_search_busline(request):
    r"""
    Perform an advanced search for bus lines which contain the input values\
    entered by the user then returns the result page and the list of results.
    """
    if ((len(request.GET['busline_advanced']) < 2)
            and (len(request.GET['description']) < 2)):
        response = modal_message(
            "Erro :(", "Entrada inválida.",
            "Os campos preenchidos da busca avançada devem possuir \
            no mínimo 2 dígitos.", "search_result_page.html", request)
    else:
        buslines = Busline.filter_by_multiple(
            line_number=request.GET['busline_advanced'],
            description=request.GET['description'],
            terminal__description='')
        count_busline = len(buslines)
        line_number = request.GET['busline_advanced']
        response = render_to_response("search_result_page.html", {
            'buslines': buslines,
            'count_busline': count_busline,
            'searched_number': line_number,
            'description': request.GET['description']
        },
                                      context_instance=RequestContext(request))

    return response
예제 #6
0
def deactivate_account_action(request):
    """Deactivate user account checking for his current password."""
    user = request.user

    password = request.POST["password"]

    if not user.check_password(password):
        response = modal_message(
            "Erro :(",
            "Senha incorreta.",
            "Verifique a escrita da senha informada.",
            "deactivate_account_page.html", request)
    else:
        user.is_active = False
        user.save()
        logout(request)
        response = modal_message(
            "Sucesso!",
            "Usuário desativado com sucesso.",
            "Esperamos o seu retorno, até logo! :)",
            "login_page.html", request)
    return response
예제 #7
0
def sugesting_line_action(request):
    """save data on db page when requested. """
    line_sugest = LineSugested()
    line_sugest.busline = int(request.POST['busline'])
    line_sugest.description = request.POST['description']
    line_sugest.justify = request.POST['justify']
    line_sugest.via = request.POST['via']
    line_sugest.terminal_id = request.POST['terminal']
    # line_sugest.terminal = request.POST['terminal']
    line_sugest.save()

    response = modal_message('Sucesso', 'linha sugerida com sucesso', 'Lnha sugerida \
            com sucesso!', 'feed_page.html', request)
    return response
예제 #8
0
def make_post_page(request):
    """Return the post page when requested. """
    line_number = request.GET['line_number']
    busline = Busline.get_by_line_equals(line_number)
    busline_id = busline.id
    terminals = busline.terminals
    try:
        last_post = Post.last(busline_id)
    except LineWithoutPostError:
        last_post = None
    if request.user.is_authenticated():
        return render_to_response("make_post_page.html", {
            'line_number': line_number,
            'last_post': last_post,
            'terminals': terminals
        },
                                  context_instance=RequestContext(request))
    else:
        return modal_message(
            "Erro :(", "Usuário não logado.", "Para realizar esta ação.\
             você deve estar logado.", "login_page.html", request)
예제 #9
0
 def test_error_message_status_code(self):
     error = "errortest"
     response = modal_message(
         error, error, error, "register_user_page.html", self.request)
     self.assertEquals(response.status_code, self.STATUS_OK)