Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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')
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
def send_async_email(app, email):
    with app.app_context():
        mail.send(email)