Ejemplo n.º 1
0
def edit_user_profile():
    """
    Edit user profile

    :return mix:
    """

    # check if user is logged in
    if not session.get('uid'):
        return redirect('/login', 302)

    # get user
    user = get_user_by_id(session['uid'])

    # POST request
    if request.method == 'POST' and request.form['csrf_token'] == csrf_token:

        # cleaning data
        try:
            _user = dict()
            _user['uid'] = int(session['uid'])
            _user['username'] = clean(request.form['username'])
            _user['first_name'] = clean(request.form['first_name'])
            _user['last_name'] = clean(request.form['last_name'])
            _user['email'] = clean(request.form['email'])
        except TypeError:
            flash('Fields can\'t be empty', 'error')
            return redirect('/profile', 302)

        if email_is_valid(_user['email']):
            user = update_user(_user)
            full_name = ' '.join([user.first_name, user.last_name])
            message = 'Dear %s, your information was updating' % full_name
            flash(message, 'success')
            return redirect('/profile', 302)
        else:
            flash('Invalid email', 'error')
            return render('users/edit_profile.html',
                          brands=brands,
                          user=user,
                          csrf_token=csrf_token)

    return render('users/edit_profile.html',
                  brands=brands,
                  token=user.generate_auth_token(3600),
                  user=user,
                  csrf_token=csrf_token)
Ejemplo n.º 2
0
def new_user():
    """
    Create a new user

    :return string: JSON
    """

    # Get user data
    data = request.json.get('data')
    username = clean(data.get('username'))
    password = clean(data.get('password'))
    first_name = clean(data.get('first_name'))
    last_name = clean(data.get('last_name'))
    email = clean(data.get('email'))

    # Check user data
    if len(username) < 3:
        return jsonify({'error': 'username too short'}), 200
    if len(password) < 8:
        return jsonify({'error': 'password must to be more 8 characters'})
    if len(first_name) < 2:
        return jsonify({'error': 'first name is too short, min 2 characters'})
    if len(last_name) < 2:
        return jsonify({'error': 'last name is too short, min 2 characters'})
    if email_is_valid(email) is False:
        return jsonify({'error': 'email is not valid'}), 200

    # Check user exist
    if user_exist(username):
        return jsonify({'error': 'user already exists'}), 200

    # Create a new user
    user = create_user(username, password, first_name, last_name,
                       email) or None
    if user is None:
        return jsonify({'error': 'error create user'}), 200
    g.user = user

    # Data preparation
    data = {
        'message': 'User created',
        'id': g.user.id,
        'full_name': g.user.get_full_name
    }
    return jsonify(data), 201
Ejemplo n.º 3
0
 def test_email_is_valid(self):
     result = email_is_valid('*****@*****.**')
     self.assertTrue(result)
     result = email_is_valid('email-gmail.com')
     self.assertFalse(result)