separado de python y max 12 caracteres rut admin + easter egg
This commit is contained in:
43
routes_auth.py
Normal file
43
routes_auth.py
Normal file
@@ -0,0 +1,43 @@
|
||||
from flask import render_template, request, redirect, url_for, flash, session
|
||||
from werkzeug.security import check_password_hash
|
||||
from database import get_db_connection
|
||||
from utils import validate_rut, format_rut
|
||||
|
||||
def register_auth_routes(app):
|
||||
@app.route('/', methods=['GET', 'POST'])
|
||||
def index():
|
||||
if 'user_id' in session:
|
||||
if session.get('is_admin'):
|
||||
return redirect(url_for('admin_rendiciones'))
|
||||
return redirect(url_for('worker_dashboard'))
|
||||
|
||||
if request.method == 'POST':
|
||||
raw_rut = request.form['rut']
|
||||
password = request.form['password']
|
||||
|
||||
rut = format_rut(raw_rut) if validate_rut(raw_rut) else raw_rut
|
||||
|
||||
conn = get_db_connection()
|
||||
c = conn.cursor()
|
||||
c.execute("SELECT id, password_hash, is_admin FROM workers WHERE rut = ?", (rut,))
|
||||
user = c.fetchone()
|
||||
conn.close()
|
||||
|
||||
if user and check_password_hash(user[1], password):
|
||||
session['user_id'] = user[0]
|
||||
session['is_admin'] = user[2]
|
||||
session['rut'] = rut
|
||||
|
||||
if user[2]:
|
||||
return redirect(url_for('admin_rendiciones'))
|
||||
else:
|
||||
return redirect(url_for('worker_dashboard'))
|
||||
else:
|
||||
flash("RUT o contraseña incorrectos.", "danger")
|
||||
|
||||
return render_template('login.html')
|
||||
|
||||
@app.route('/logout')
|
||||
def logout():
|
||||
session.clear()
|
||||
return redirect(url_for('index'))
|
||||
Reference in New Issue
Block a user