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
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
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
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
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
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
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)
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)