Exemple #1
0
def signin():
    if request.method == 'POST':
        email = request.form.get('email').lower()
        password = request.form.get('password')
        user = get_user(id=email)
        if not user:
            return render_template('users/signin.html',
                                   error=['no_user_found'])
        if not validate_login(user.password, password, 'users'):
            return render_template('users/signin.html',
                                   error=['wrong_password'])
        if request.form['submit'] == "Remail":
            if not user.confirmed:
                token = generate_confirmation_token(email)
                confirm_url = url_for('users.confirm_email',
                                      token=token,
                                      _external=True)
                send_mail(email, confirm_url)
                return render_template('users/signin.html',
                                       error=['user_registered'])
            return render_template('users/signin.html',
                                   error=['account_already_confirmed'])
        else:
            if not user.confirmed:
                return render_template('users/signin.html',
                                       error=['user_not_confirmed'])
            # all is good
            user = User(id=email, password=password)
            print(f'connected_as: {email}')
            login_user(user)
            return redirect(url_for('users.dashboard'))
    print(f'flash: {get_flashed_messages()}')
    return render_template('users/signin.html', error=get_flashed_messages())
Exemple #2
0
def reset_password(token):
    #confirm user's idendity
    # we use a shorter expiration time , defined in the PASSWORD_TOKEN_EXPIRATION Environment variable
    email = confirm_token(token, expiration='PASSWORD_TOKEN_EXPIRATION')
    if not email:
        flash('confirm_link_expired', 'danger')
        return redirect(url_for('users.signin'))
    if request.method == 'POST':
        #get user from db
        user = get_user(id=email)
        if not user:
            flash('error')
            return redirect(url_for('users.signin'))
        #get the new password from the form
        password = request.form.get('password')
        try:
            #try to change the password in the db
            changed = change_password(user, password)
            if (changed):
                flash('reset_password')
            else:
                flash('error')
        except Exception as e:
            print('error', e, user, user.data)
        return redirect(url_for('users.signin'))
    return render_template('users/reset_password.html', token=token)
Exemple #3
0
def reset_password_request():
    if request.method == 'POST':
        # get the user's mail
        email = request.form.get('email').lower()
        user = get_user(id=email)  #get user from db
        if not email:
            flash('empty_fields')
            return render_template('users/reset_password_request.html')
        if not user:  #user not found in db
            return render_template('users/reset_password_request.html',
                                   error='user_does_not_exist')
        else:
            #generate token
            token = generate_confirmation_token(email)
            #generate unique URL
            confirm_url = url_for('users.reset_password',
                                  token=token,
                                  _external=True)
            # send the confirmation mail
            # use the passwordreset template
            send_mail(email, confirm_url,
                      'dd8c6e2a-7d33-42e5-b749-1354c1b357d6')
            flash('update_password')
            return redirect(url_for('users.signin'))
    return render_template('users/reset_password_request.html')
Exemple #4
0
def template_test():
    if request.method == 'GET':
        return render_template('login.html')
    else:

        login = request.form.get('login').lower()
        password = request.form.get('password')
        if storage.check_password(login, password):
            user = storage.get_user(login)
            return render_template('name.html', user=user, users=storage.in_game_list(), login=login)
        else:
            return render_template('login.html')
Exemple #5
0
def confirm_email(token):
    email = confirm_token(token)

    if not email:
        flash('confirm_link_expired', 'danger')
        return redirect(url_for('users.signin'))

    user = get_user(id=email)
    if not user:
        flash('error')
        return redirect(url_for('users.signin'))
    if user.confirmed:
        flash('account_already_confirmed', 'success')
    else:
        confirm_user(user)
        flash('account_confirmed', 'success')
    return redirect(url_for('users.signin'))
Exemple #6
0
def signin():
    if request.method == 'POST':
        email = request.form.get('email').lower()
        password = request.form.get('password')
        user = get_user(id=email)
        if not user:
            return render_template('users/signin.html',
                                   error=['no_user_found'])
        if not validate_login(user.password, password, 'users'):
            return render_template('users/signin.html',
                                   error=['wrong_password'])
        if not user.confirmed:
            return render_template('users/signin.html',
                                   error=['user_not_confirmed'])
        # all is good
        user = User(id=email, password=password)
        print(f'connected_as: {email}')
        login_user(user)
        return redirect(url_for('users.dashboard'))
    print(f'flash: {get_flashed_messages()}')
    return render_template('users/signin.html', error=get_flashed_messages())
Exemple #7
0
def signup():
    if request.method == 'POST':
        email = request.form.get('email')
        password = request.form.get('password')
        if not password or not email:
            flash('empty_fields')
            return render_template('users/signup.html')
        email = email.lower()
        if user_exists(email):
            user = get_user(id=email)
            if user.confirmed:
                return render_template('users/signup.html',
                                       error='user_already_exists')
            else:
                token = generate_confirmation_token(email)
                confirm_url = url_for('users.confirm_email',
                                      token=token,
                                      _external=True)
                send_mail(email, confirm_url)
                flash('user_registered')
                return redirect(url_for('users.signin'))
        else:
            user = User(id=email, password=password, created=True)
            token = generate_confirmation_token(email)
            confirm_url = url_for('users.confirm_email',
                                  token=token,
                                  _external=True)
            try:
                created = new_user(user)
                if created:
                    send_mail(email, confirm_url)
                    flash('user_registered')
                else:
                    flash('error')
            except Exception as e:
                print('error', e, user, user.data)
            return redirect(url_for('users.signin'))
    return render_template('users/signup.html')
Exemple #8
0
def load_user(user_id):
    if '@' in user_id:
        return storage.get_user(user_id)
    else:
        return Company(id=user_id, data=storage.get_company(user_id))