def lock_account(): if request.method == 'POST': form = LockAccount() if form.validate_on_submit(): if form.confirm.data == 'YES': key = email_key_generator() query = LockedAccount(user_id=current_user.id, is_valid=True, deactivation_date=datetime.now(), activation_key=key) msg = Message('SafeCore Reactivation Link', recipients=current_user.email) msg.html = render_template('reactivation.html', confirmation=key) mail.send(msg) user = current_user user.authenticated = False user.account_status = 'disabled' db.session.add(query, user) db.session.commit() logout_user() flash('Successfully deactivated account!', 'info') return redirect(url_for('login')) else: flash('Please type YES', 'warning') return redirect(url_for('lock_account')) else: flash('Please fill up the form', 'warning') return redirect(url_for('lock_account')) else: abort(404)
def send_async_email(app, email): """Send an email in the background. Args: app (:obj:`flask.Flask`): The current application instance. email (:obj:`flask_mail.Message`): The message to send. """ with app.app_context(): mail.send(email)
def register(): form = RegistrationForm(request.form, captcha={ 'ip_address': request.environ.get('HTTP_X_REAL_IP', request.remote_addr) }) if current_user.is_authenticated: return redirect(url_for('home')) if request.method == 'POST': if form.validate_on_submit(): restrict_email = form.email.data.split('@') if restrict_email[1] == 'gmail.com' or restrict_email[ 1] == 'yahoo.com': registered_email = User.query.filter_by( email=form.email.data).first() registered_user = User.query.filter_by( username=form.username.data).first() if registered_user is None and registered_email is None: verification_code = email_key_generator() msg = Message('SafeCore Identity Confirmation', recipients=[form.email.data]) msg.html = render_template('email.html', email=form.email.data, confirmation=verification_code) mail.send(msg) query = User(form.first_name.data, form.last_name.data, form.email.data, form.username.data, form.password.data) email_expiration = datetime.now() + timedelta(days=1) email_verify = Email(user=query, confirmation_key=verification_code, registration_date=datetime.now(), valid=True, expiration_date=email_expiration) db.session.add(query, email_verify) db.session.commit() flash('Please check your email for verification!', 'info') return redirect(url_for('login')) else: flash('Username or email already exists!', 'warning') return redirect(url_for('register')) else: flash('We only accept email in Google and Yahoo', 'warning') return redirect(url_for('register')) else: flash('Something went wrong! Please check your form and try again', 'warning') return redirect(url_for('register')) return render_template('register.html', form=form, page_title='Register')
def signup_page(name=None): form = RegistrationForm(request.form, captcha={'ip_address': request.environ.get('HTTP_X_REAL_IP', request.remote_addr)}) if name is None: abort(404) if current_user.is_authenticated: return redirect(url_for('home')) if request.method == 'POST': if name is None: abort(404) if form.validate_on_submit(): query = User.query.filter_by(is_reseller=True, username=name).first_or_404() email = form.email.data restrict_email = email.split('@') if restrict_email[1] == 'gmail.com' or restrict_email[1] == 'yahoo.com': registered_email = User.query.filter_by(email=form.email.data).first() registered_user = User.query.filter_by(username=form.username.data).first() if registered_user is None and registered_email is None: verification_code = email_key_generator() msg = Message('SafeCore Identity Confirmation', recipients=[form.email.data] ) msg.html = render_template('email.html', email=form.email.data, confirmation=verification_code) mail.send(msg) query = User( form.first_name.data, form.last_name.data, form.email.data, form.username.data, form.password.data, query.username ) email_expiration = datetime.now() + timedelta(days=1) email_verify = Email(user=query, confirmation_key=verification_code, registration_date=datetime.now(), valid=True, expiration_date=email_expiration ) notify = Notifications(user_id=query.id, notification_type='signup', confirmed_date=datetime.now(), notification_ip=request.environ.get('HTTP_X_REAL_IP', request.remote_addr)) db.session.add(query, email_verify, notify) db.session.commit() flash('Please check your email for verification!', 'info') return redirect(url_for('login')) else: flash('Username or email already exists!', 'warning') return redirect(url_for('reseller.signup_page')) else: flash('We only accept email in Google and Yahoo', 'warning') return redirect(url_for('reseller.signup_page')) else: flash('Something went wrong! Please check your form and try again', 'warning') return redirect(url_for('reseller.signup_page')) form = RegistrationForm(request.form, captcha={'ip_address': request.environ.get('HTTP_X_REAL_IP', request.remote_addr)}) query = User.query.filter_by(is_reseller=True, username=name).first_or_404() if query.account_status == 'banned' or query.account_status == 'deactivated': abort(404) else: return render_template('my_page_signup.html', query=User.query.filter_by(is_reseller=True, username=name).first_or_404(), form=form, page_title='Register under ' + query.username)
def send_async_email(app, email): with app.app_context(): mail.send(email)