diff --git a/app.py b/app.py index 99da57d..bb68402 100644 --- a/app.py +++ b/app.py @@ -101,6 +101,37 @@ def logout(): session.clear() return redirect(url_for("login")) +@app.route("/registro", methods=["GET", "POST"]) +def registro(): + error = None + ok = None + if request.method == "POST": + usuario = request.form.get("usuario", "").strip().lower() + nombre = request.form.get("nombre", "").strip() + password = request.form.get("password", "") + password2 = request.form.get("password2", "") + # Validaciones + if not usuario or not password or not nombre: + error = "Todos los campos son obligatorios" + elif len(usuario) < 3 or not usuario.isalnum(): + error = "El usuario debe tener al menos 3 caracteres y solo letras/numeros" + elif len(password) < 6: + error = "La contrasena debe tener al menos 6 caracteres" + elif password != password2: + error = "Las contrasenas no coinciden" + else: + users = cargar_usuarios() + if usuario in users: + error = "Ese nombre de usuario ya esta en uso" + else: + users[usuario] = { + "password_hash": generate_password_hash(password), + "nombre": nombre + } + guardar_usuarios(users) + ok = "Cuenta creada correctamente. Ya puedes iniciar sesion." + return render_template("registro.html", error=error, ok=ok) + # ----------------------------------------------------------------------- # Pagina principal # ----------------------------------------------------------------------- diff --git a/static/css/style.css b/static/css/style.css index 6410677..92abd3d 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -310,4 +310,13 @@ h2 { padding: .5rem .75rem; font-size: .85rem; margin-top: .5rem; +} +.alert-ok { + background: #1a3d25; + color: #6fcf97; + border: 1px solid #276738; + border-radius: 6px; + padding: .5rem .75rem; + font-size: .85rem; + margin-top: .5rem; } \ No newline at end of file diff --git a/templates/login.html b/templates/login.html index 4957d98..64fc648 100644 --- a/templates/login.html +++ b/templates/login.html @@ -25,6 +25,9 @@ Entrar +
+ ¿No tienes cuenta? Registrate +