Example #1
0
def before_request():
    g.usuario = None
    if 'nomeusuario' in session:
        g.usuario = db.get_usuario(session['nomeusuario'])
Example #2
0
def logreg():
    if g.usuario:
        return redirect(url_for('index'))
    erros = []
    loginfo = {}
    if request.method == 'POST':
        if request.form['btn'] == 'reg':
            nomeusuario = request.form['nomeusuario']
            email = request.form['email']
            senha = request.form['password']
            nasc = request.form['nasc']
            sexo = request.form['sexoradio']

            valido = db.validar_usuario(request.form['nomeusuario'],
                    request.form['email'])

            # Validando nome de usuário ----
            if not valido['nomeusuario'] or \
               not entre(2, 20, nomeusuario):
                erros.append(u"Nome de usuário inválido")
            elif not re.match("^[a-zA-Z0-9_]+$", nomeusuario):
                erros.append(u"Nome de usuário inválido (use apenas \
                        caracteres, números e underlines)")

            # Validando email --------------
            if not valido['email'] or not entre(3, 1024, email):
                erros.append(u"Email inválido")

            # Validando senha --------------
            if len(senha) < 4:
                erros.append(u"Senha inválida (use pelo menos 4 caracteres")
            else:
                m = hashlib.md5()
                m.update(senha)
                senha = m.hexdigest()

            # Validando data ---------------
            try:
                nasc = datetime.strptime(nasc, '%d/%m/%Y')
            except ValueError:
                erros.append(u"Data inválida (use DD/MM/AAAA)")

            nasc = nasc.strftime('%Y-%m-%d')

            # Validando sexo ---------------
            if(sexo == '/'):
                erros.append(u"Sexo não informado")
            else:
                if(sexo == 'masc'):     sexo = 'M'
                elif(sexo == 'fem'):    sexo = 'F'
                elif(sexo == 'na'):     sexo = 'N'

            if not erros:
                db.registrar_usuario(nomeusuario, email, senha, nasc, sexo)
                session['nomeusuario'] = nomeusuario
                return redirect(url_for('index'))

        elif request.form['btn'] == 'log':
            nomeusuario = request.form['nomeusuario']
            senha = request.form['password']

            usuario = db.get_usuario(nomeusuario)
            if usuario == None:
                erros.append(u"Usuário inválido")
            elif not check_password_hash(senha, usuario['senha']):
                erros.append(u"Senha incorreta")
                loginfo['nomeusuario'] = nomeusuario
            else:
                session['nomeusuario'] = usuario['nome_usuario']
                return redirect(url_for('index'))
    return render_template('logreg.html', erros=erros, loginfo=loginfo)