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 models import User, Listing, Booking, Image, Document, Amenities
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from utils import generate_password, send_email, save_document
|
from utils import generate_password, send_email, save_document
|
||||||
|
import re
|
||||||
|
|
||||||
@login_manager.user_loader
|
@login_manager.user_loader
|
||||||
def load_user(user_id):
|
def load_user(user_id):
|
||||||
@@ -43,15 +44,28 @@ def logout():
|
|||||||
def register():
|
def register():
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
email = request.form['email']
|
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_plain = generate_password()
|
||||||
password = bcrypt.generate_password_hash(password_plain).decode('utf-8')
|
password = bcrypt.generate_password_hash(password_plain).decode('utf-8')
|
||||||
phone = request.form['phone']
|
|
||||||
user = User(email=email, password=password, phone=phone)
|
user = User(email=email, password=password, phone=phone)
|
||||||
db.session.add(user)
|
db.session.add(user)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
send_email(email, 'Your Account Password', f'Your password is: {password_plain}')
|
send_email(email, 'Your Account Password', f'Your password is: {password_plain}')
|
||||||
login_user(user)
|
login_user(user)
|
||||||
return redirect(url_for('upload_document'))
|
return redirect(url_for('upload_document'))
|
||||||
|
|
||||||
return render_template('register.html')
|
return render_template('register.html')
|
||||||
|
|
||||||
@app.route('/upload-document', methods=['GET', 'POST'])
|
@app.route('/upload-document', methods=['GET', 'POST'])
|
||||||
|
|||||||
Reference in New Issue
Block a user