def profile_register():
    """
    Register a new user
    """
    new_user_data = request.json

    # Check for errors
    out = {}

    # If username already exists
    if User.query.filter_by(username=new_user_data['username']).first():
        out['username'] = '******'
    # If email already exists
    if User.query.filter_by(email=new_user_data['email']).first():
        out['email'] = 'Questa email è già stata presa'

    if not out:
        # Registration compiled successfully
        user = User(name=new_user_data['name'],
                    surname=new_user_data['surname'],
                    username=new_user_data['username'],
                    email=new_user_data['email'],
                    birth_date=datetime.strptime(new_user_data['birth_date'],
                                                 "%Y-%m-%d").date(),
                    privilege=new_user_data['privilege'],
                    password=bcrypt.generate_password_hash(
                        new_user_data['password']).decode('utf-8'))
        db.session.add(user)
        db.session.commit()

        return {'user_id': user.id}, 200

    return out, 400
Exemple #2
0
def register():
    form = RegistrationForm()
    if current_user.is_authenticated:
        return redirect(url_for('store'))

    if form.validate_on_submit():
        #hashing the user password to database
        hashed_passowrd = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user = User(username=form.username.data,
                    email=form.email.data,
                    password=hashed_passowrd,
                    confirmed_user=False)
        db.session.add(user)
        db.session.commit()

        #sending email
        token = tokenGenerator(user.email)
        link = url_for('confirm_email', token=token, _external=True)
        template = render_template('email.html', link=link, user=user.username)
        subject = "Please confirm your email"
        send_email(user.email, subject, template)

        flash(
            f'Account is created {form.username.data} ! we will send you an email'
        )
        return redirect(url_for('store'))
    return render_template('register.html', form=form)
Exemple #3
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('home'))
    form = RegistrationForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user = User(userName=form.username.data,
                    email=form.email.data,
                    password=hashed_password)
        db.session.add(user)
        db.session.commit()
        flash(f'Account created for {form.username.data}!', 'success')
        return redirect(url_for('login'))
    return render_template('register.html', title='Register', form=form)
def reset_token(token):
    if current_user.is_authenticated():
        return redirect(url_for('main.home'))
    user = User.verify_reset_token(token)
    if user is None:
        flash('This is an invalid or expired token', 'danger')
        return redirect(url_for('reset_request'))
    form = ResetPasswordForm()
    if form.validate_on_submit():
        hashpass = bcrypt.generate_password_hash(forms.password.data).decode('utf-8')
        db.session.commit()
        flash('Your password has benn updated!', 'success')
        redirect(url_for('login'))

    return render_template('reset_token.html', form=form)
Exemple #5
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('home'))
    if request.method == 'POST':
        hashed_password = bcrypt.generate_password_hash(
            request.form.get('password'))
        user = User(firstname=request.form.get('firstname'),
                    lastname=request.form.get('lastname'),
                    email=request.form.get('email'),
                    instagram_id=request.form.get('instagram_id'),
                    facebook_id=request.form.get('facebook_id'),
                    password=hashed_password)
        db.session.add(user)
        db.session.commit()
        flash('Your account has been created! You are now able to log in',
              'success')
        return redirect(url_for('login'))
    return render_template('register.html', title='Register')
Exemple #6
0
def reset_token(token):
    # if current_user.is_authenticated:
    #     return redirect(url_for('home'))
    user = User.verify_reset_token(token)
    if user is None:
        flash('That is an invalid or expired token', 'warning')
        return redirect(url_for('reset_request'))
    form = ResetPasswordForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user.password = hashed_password
        db.session.commit()
        flash('Your password has been updated! You are now able to log in',
              'success')
        return redirect(url_for('login'))
    return render_template('reset_token.html',
                           title='Reset Password',
                           form=form)