check exists email or phone

This commit is contained in:
2025-02-25 18:10:57 +08:00
parent ac7d18e14b
commit ea3f830134
+15 -1
View File
@@ -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'])