check exists email or phone
This commit is contained in:
@@ -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'])
|
||||
|
||||
Reference in New Issue
Block a user