def alterar_senha(request): atualErrada = False naoConfirma = False logado = verificaUsuario(request) if logado: usuario = pegaUsuario(request.session['idusuario'], request.session['nome']) senha_salva = usuario.senha senha_atual = "" senha_nova = "" senha_confirma = "" if request.method == 'POST': senha_atual = request.POST.get('senha_atual') senha_nova = request.POST.get('senha_nova') senha_confirma = request.POST.get('senha_confirma') if (senha_salva == senha_atual): # se senha correta if (senha_nova == senha_confirma): usuario.senha=senha_nova usuario.save() return perfil(request) else: naoConfirma = True else: atualErrada = True return render(request, 'cadastroapp/alterar-senha.html', {'atualErrada': atualErrada, 'naoConfirma' : naoConfirma}) else: return render(request, 'cadastroapp/home.html', {})
def alterar_dados(request): logado = verificaUsuario(request) erroEmail = False if logado: usuario = pegaUsuario(request.session['idusuario'], request.session['nome']) nome = usuario.nome email = usuario.email CPF = usuario.cpf senha = usuario.senha if request.method == 'POST': nome = request.POST['nome'] email = request.POST['email'] if nome=="": nome = usuario.nome if email=="": email = usuario.email elif '@' in email and '.' in email: erroEmail = False else: erroEmail = True if not erroEmail: usuario.nome=nome request.session['nome']=nome usuario.email=email usuario.save() return perfil(request) return render(request, 'cadastroapp/alterar-dados.html', {'nome': nome, 'email': email, 'CPF': CPF, 'erroEmail' : erroEmail}) else: return render(request, 'cadastroapp/home.html', {})
def logout(request): logado = verificaUsuario(request) if logado: del request.session['logado'] del request.session['nome'] del request.session['idusuario'] MongoSession.objects.get(session_key=request.session.session_key).delete() return render(request, 'cadastroapp/home.html', {})
def perfil(request): logado = verificaUsuario(request) if logado: usuario = pegaUsuario(request.session['idusuario'], request.session['nome']) email = usuario.email CPF = usuario.cpf return render(request, 'cadastroapp/perfil.html', {'email': email, 'CPF': CPF}) else: return render(request, 'cadastroapp/home.html', {})
def login(request): logado = verificaUsuario(request) if logado: return redirect('/perfil') desativada = False Usererrado = False SenhaErrada = False EmailConfirmado = "" tent = 0 if request.method == 'POST': email = request.POST.get('email') senha = request.POST.get('senha') permanece = request.POST.get('permanece') try: # se usuario e senha corretos user = Usuario.objects.get(email=email, senha=senha) id1 = str(user.idusuario) nome = str(user.nome) if (permanece == "on"): tempo = 1000000000 else: tempo = 10000 request.session.set_expiry(tempo) request.session['logado'] = True request.session['nome'] = nome request.session['idusuario'] = id1 user.tentativas=0 user.save() return HttpResponseRedirect('/perfil') except: try: user2 = Usuario.objects.get(email=email) SenhaErrada = True tent = user2.tentativas if(tent<3): tent = tent+1 user2.tentativas=tent user2.save() except: Usererrado = True return render(request, 'cadastroapp/login.html', {'EmailConfirmado': EmailConfirmado, 'Usererrado': Usererrado, 'tent': tent, 'SenhaErrada': SenhaErrada})
def cadastro(request): logado = verificaUsuario(request) if logado: return redirect('/perfil') registrado = False erroSenha = False erroEmail = False erroCPF = False erroCPFexistente = False erroUsuario = False chars = string.ascii_letters + string.digits siz = 25 cpf = "" if request.method == 'POST': nome = request.POST.get('nome') email = request.POST.get('email') cpf = str(request.POST.get('cpf')) try: user2 = Usuario.objects.get(cpf=cpf) erroCPFexistente = True except: erroCPFexistente = False if nome=="": erroUsuario = True else: erroUsuario = False veif = validar_cpf(cpf) if not veif: erroCPF = True senha1 = request.POST['senha1'] senha2 = request.POST['senha2'] try: user = Usuario.objects.get(nome=nome, email=email) registrado = True except: registrado = False if senha1 == senha2: erroSenha = False else: erroSenha = True if '@' in email and '.' in email: erroEmail = False else: erroEmail = True if not erroUsuario and not erroEmail and not erroSenha and not erroCPF and not erroCPFexistente: tokenEmail = ''.join(random.choice(chars) for x in range(siz)) cliente = Usuario(idusuario=cpf, nome=nome, email=email, cpf=cpf, senha=senha1, ativado=False, tokenEmail=tokenEmail, tentativas=0) cliente.save() subject = '[Sem Resposta]' message = 'Seja bem-vindo à Scan&Skip.\n Seu cadastro está quase pronto! Falta apenas confirmar o seu e-mail! \n Acesse o link para confirmar seu e-mail /n https://scan-skip-teste.herokuapp.com/ativa/token=' + tokenEmail from_email = settings.EMAIL_HOST_USER to_list = [email] send_mail(subject, message, from_email, to_list, fail_silently=True) registrado = True return HttpResponseRedirect('/login') else: usuario = '' nome = '' email = '' return render(request, 'cadastroapp/Cadastro.html', {'nome': nome, 'cpf': cpf, 'email': email, 'erroSenha' : erroSenha, 'erroCPFexistente' : erroCPFexistente, 'registrado' : registrado, 'erroEmail' : erroEmail, 'erroUsuario' : erroUsuario, 'erroCPF' : erroCPF})