Esempio n. 1
0
def login(request):
    """ 
    Página para login, site, face e twitter

    """
		
    esquema = FormLogin().bind(request=request)
    esquema.title = "Login"
	#botoes nao aceitam frases como label = "esqueci a senha"
    form = deform.Form(esquema, buttons=('Entrar', 'Esqueci a senha'))
    #form = deform.Form(esquema, buttons=('Entrar', 'Esqueci'))
    if authenticated_userid(request):
       request.session.flash(u"Usuário já está logado, caso queira entrar com usuário diferente, faça o logout.")	
       return HTTPFound(location=request.route_url('usuario'))	   
    if 'Entrar' in request.POST:
        try:
            form.validate(request.POST.items())		
        except deform.ValidationFailure as e:
            return {'form': e.render()}

        email = request.POST.get("email")
        senha = request.POST.get("senha")
        if email in request.db["usrTree"]:
            cidadao = Cidadao("","")
            cidadao = request.db["usrTree"][email]
            if cidadao.senha == senha:
                headers = remember(request, email)
                next = request.route_url('usuario')
                request.session.flash(u"Usuário logado")				
                return HTTPFound(location=next, headers=headers)					
            else:
                request.session.flash(u"Email ou senha inválidos")			
        else:
            request.session.flash(u"Email ou senha inválidos")		
        return {'form': form.render()}
    #não entra nesse elif
    #elif 'Esqueci' in request.POST:  
    elif 'Esqueci_a_senha' in request.POST:  
        return HTTPFound(location=request.route_url('r_senha'))
    else:
        return {'form': form.render()}