From ea3f830134e819888821b3ed8441bac209de3171 Mon Sep 17 00:00:00 2001 From: 3err0 Date: Tue, 25 Feb 2025 18:10:57 +0800 Subject: [PATCH] check exists email or phone --- routes.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/routes.py b/routes.py index 2ac87af..a2207fb 100644 --- a/routes.py +++ b/routes.py @@ -4,6 +4,7 @@ from app import app, db, bcrypt, login_manager from models import User, Listing, Booking, Image, Document, Amenities from datetime import datetime from utils import generate_password, send_email, save_document +import re @login_manager.user_loader def load_user(user_id): @@ -43,15 +44,28 @@ def logout(): def register(): if request.method == 'POST': email = request.form['email'] + phone = request.form['phone'] + + existing_user = User.query.filter((User.email == email) | (User.phone == phone)).first() + if existing_user: + error_message = "User with this email or phone number already exists." + return render_template('register.html', error=error_message) + + phone_pattern = re.compile(r'^(\+\d{1,3}|8)?\d{10,15}$') + if not phone_pattern.match(phone): + error_message = "Invalid phone number format." + return render_template('register.html', error=error_message) + password_plain = generate_password() password = bcrypt.generate_password_hash(password_plain).decode('utf-8') - phone = request.form['phone'] user = User(email=email, password=password, phone=phone) db.session.add(user) db.session.commit() + send_email(email, 'Your Account Password', f'Your password is: {password_plain}') login_user(user) return redirect(url_for('upload_document')) + return render_template('register.html') @app.route('/upload-document', methods=['GET', 'POST'])