Example #1
0
def register():
    if request.method == 'POST' and 'User-Agent' not in request.headers:
        email = request.form['email']
        password = generate_password_hash(request.form['password'])
        name = request.form['name']
        if name and email and password:
            if Users.query.filter_by(email = email).first() is None:
                new_user = Users(name, email, password)
                db.session.add(new_user)
                db.session.commit()
                user = Users.query.filter_by(email = email).first()
                token = user.generate_auth_token(600)  #---visit tutorial on generating this
                return jsonify({'error':'null', 'data':{'token': token.decode('ascii'), 'expires': 600, 'user':{'id': user.id, 'email': user.email, 'name': user.name}, 'message':'success'}})
            if Users.query.filter_by(email = email).first() is not None:
                user = Users.query.filter_by(email = email).first()
                return jsonify({'error': '1', 'data': {'email': user.email}, 'message':'user already exists'})
    form = SignUpForm()
    if request.method == 'POST' and 'User-Agent' in request.headers:
        if form.validate_on_submit():
            email = request.form['email']
            password = generate_password_hash(request.form['password'])
            name = request.form['name']
            new_user = Users(name, email, password)
            db.session.add(new_user)
            db.session.commit()
            # user = Users.query.filter_by(email = email).first()
            # token = user.generate_auth_token(600)  #---visit tutorial on generating this
            return redirect(url_for('login'))
    return render_template(
        'signup.html',
        title='User Signup',
        year=datetime.datetime.now().year,
        form=form,
        user=g.user
    )
Example #2
0
 def test_password_hash_random(self):
     """Testing password hash is random."""
     user1 = Users(Username='******')
     user2 = Users(Username='******')
     user1.set_password('test')
     user2.set_password('test')
     self.assertTrue(user1.Password != user2.Password)
Example #3
0
def test_class_save_db(new_user, init_db):
    user, _ = new_user
    init_db.session.add(user)
    init_db.session.commit()

    user_in_db = init_db.session.query(Users).get(1)
    assert user_in_db.name == user.name

    user_info = {
        "name": "Rafiq",
        "surname": "Alimaerdenov",
        "email": "*****@*****.**",
        "password": "******"
    }

    user = Users(**user_info)
    user.save_db()
    user_in_db = init_db.session.query(Users).get(2)
    assert user_in_db.name == user.name
    assert user_in_db.created is not None

    new_user = Users(**user_info)
    assert new_user.save_db() is False

    user_info = {
        "name": None,
        "surname": "Alimaerdenov",
        "email": "*****@*****.**",
        "password": "******"
    }

    user = Users(**user_info)
    assert user.save_db() is False
Example #4
0
 def setUp(self):
     app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.abspath(
         os.getcwd()) + "/test.db"
     db.drop_all(
     )  #Just to make sure there are no entries in the testing database before adding to the database.
     db.create_all()
     pass1 = "1234"
     pass2 = "3421f"
     userno1 = Users(username="******",
                     email="*****@*****.**",
                     password=bcrypt.hashpw(pass1.encode('utf-8'),
                                            bcrypt.gensalt()))
     userno2 = Users(username="******",
                     email="*****@*****.**",
                     password=bcrypt.hashpw(pass2.encode('utf-8'),
                                            bcrypt.gensalt()))
     prog1 = Progress(username="******", numFlips=23)
     prog2 = Progress(username="******", numFlips=22)
     prog3 = Progress(username="******", numFlips=21)
     db.session.add(userno1)
     db.session.add(userno2)
     db.session.add(prog1)
     db.session.add(prog2)
     db.session.add(prog3)
     db.session.commit()
Example #5
0
 def test_create_bucket_happy_path(self):
     '''Testing that the create bucket does create a bucket list object.  '''
     Users().users.clear()
     Users().create_user("user1", "*****@*****.**", "password", "password")
     Users().login_user("*****@*****.**", "password")
     BucketList().create_bucket("Family")
     self.assertEqual(len(Users().users[0].user_bucket), 1)
Example #6
0
 def test_create_bucket_happy_path_1(self):
     '''Testing that the create bucket does create a bucket list object with the
      right bucket name.
      '''
     Users().users.clear()
     Users().create_user("user1", "*****@*****.**", "password", "password")
     Users().login_user("*****@*****.**", "password")
     BucketList().create_bucket("Family")
     self.assertEqual(Users().users[0].user_bucket[0].bucket_name, "Family")
Example #7
0
 def test_delete_activity_happy_path(self):
     '''Testing that delete activity deletes an activity object.  '''
     Users().users.clear()
     Users().create_user("user1", "*****@*****.**", "password", "password")
     Users().login_user("*****@*****.**", "password")
     BucketList().create_bucket("Family")
     BucketList().create_activity(0, "Visit")
     BucketList().delete_activity(0, 0)
     self.assertEqual(len(Users().users[0].user_bucket[0].activity_list), 0)
Example #8
0
 def test_edit_bucket_happy_path(self):
     '''Testing that the edit bucket edit a particular bucket list object with
     right arguments entered.
     '''
     Users().users.clear()
     Users().create_user("user1", "*****@*****.**", "password", "password")
     Users().login_user("*****@*****.**", "password")
     BucketList().create_bucket("Family")
     BucketList().edit_bucket(0, "Travel")
     self.assertEqual(Users().users[0].user_bucket[0].bucket_name, "Travel")
Example #9
0
 def test_edit_activity_happy_path(self):
     '''Testing that edit activity does edit an activity with the right input.  '''
     Users().users.clear()
     Users().create_user("user1", "*****@*****.**", "password", "password")
     Users().login_user("*****@*****.**", "password")
     BucketList().create_bucket("Family")
     BucketList().create_activity(0, "Visit")
     BucketList().edit_activity(0, 0, "Buy Gifts")
     self.assertEqual(Users().users[0].user_bucket[0].activity_list[0],
                      "Buy Gifts")
Example #10
0
 def test_create_bucket_sad_path_1(self):
     '''Testing that the create bucket does not create a bucket list object
     that is similar in name to a previous bucket object name created.
     '''
     Users().users.clear()
     Users().create_user("user1", "*****@*****.**", "password", "password")
     Users().login_user("*****@*****.**", "password")
     BucketList().create_bucket("Family")
     BucketList().create_bucket("Family")
     self.assertEqual(len(Users().users[0].user_bucket), 1)
Example #11
0
 def test_create_activity_happy_path(self):
     '''Testing that the create activity does create an activity object
     with the right inputs.
     '''
     Users().users.clear()
     Users().create_user("user1", "*****@*****.**", "password", "password")
     Users().login_user("*****@*****.**", "password")
     BucketList().create_bucket("Family")
     BucketList().create_activity(0, "Visit")
     self.assertEqual(Users().users[0].user_bucket[0].activity_list[0],
                      "Visit")
Example #12
0
 def test_create_activity_sad_path_1(self):
     '''Testing that the create activity does not create an activity that was created
     before.
     '''
     Users().users.clear()
     Users().create_user("user1", "*****@*****.**", "password", "password")
     Users().login_user("*****@*****.**", "password")
     BucketList().create_bucket("Family")
     BucketList().create_activity(0, "Visit my aunt")
     BucketList().create_activity(0, "Visit my aunt")
     self.assertEqual(len(Users().users[0].user_bucket[0].activity_list), 1)
Example #13
0
 def test_edit_activity_sad_path(self):
     '''Testing that edit activity does not edit the activity if the activity input
     is an empty string.
     '''
     Users().users.clear()
     Users().create_user("user1", "*****@*****.**", "password", "password")
     Users().login_user("*****@*****.**", "password")
     BucketList().create_bucket("Family")
     BucketList().create_activity(0, "Visit")
     BucketList().edit_activity(0, 0, "")
     self.assertEqual(Users().users[0].user_bucket[0].activity_list[0],
                      "Visit")
Example #14
0
 def test_edit_bucket_sad_path(self):
     '''Testing that the edit bucket does not edit once an empty string is given
     or when a bucket name entered already exists in the user's bucket list.
     '''
     Users().users.clear()
     Users().create_user("user1", "*****@*****.**", "password", "password")
     Users().login_user("*****@*****.**", "password")
     BucketList().create_bucket("Family")
     BucketList().edit_bucket(0, "")
     self.assertEqual(Users().users[0].user_bucket[0].bucket_name, "Family")
     BucketList().create_bucket("Travel")
     BucketList().edit_bucket(0, "Travel")
     self.assertEqual(Users().users[0].user_bucket[0].bucket_name, "Family")
Example #15
0
def register():

    if request.method == "POST" and 'username' in request.form and 'password' in request.form and 'email' in request.form:
        nama = request.form.get("nama")
        username = request.form.get("username")
        email = request.form.get("email")
        notlp = request.form.get("notlp")
        alamat = request.form.get("alamat")
        password = request.form.get("password")
        # Check if account exists using MySQL
        users = Users.query.filter_by(username=username).first()
        # If account exists show error and validation checks
        if users:
            msg = 'Account already exists!'
        elif not re.match(r'[^@]+@[^@]+\.[^@]+', email):
            msg = 'Invalid email address!'
        elif not re.match(r'[A-Za-z0-9]+', username):
            msg = 'Username must contain only characters and numbers!'
        elif not username or not password or not email:
            msg = 'Please fill out the form!'
        else:
            # Account doesnt exists and the form data is valid, now insert new account into users table
            users = Users(nama=nama,
                          username=username,
                          email=email,
                          notlp=notlp,
                          alamat=alamat,
                          password=password)
            db.session.add(users)
            db.session.commit()
            msg = 'You have successfully registered!'
            return redirect(url_for('login'))

    return render_template("register.html")
Example #16
0
def register():
    data = request.get_json()

    email = data['email']
    name = data['name']
    password = data['password']

    if email.isspace() or name.isspace() or password.isspace():
        response = jsonify({
            'message': 'all fields are required',
            'status': False
        })
        response.status_code = 401
        return response
    else:
        hashed_password = generate_password_hash(password, method='sha256')
        new_user = Users(email=email,
                         name=name,
                         role='customer',
                         password=hashed_password)
        new_user.save()

        response = jsonify({
            'id': new_user.id,
            'email': new_user.email,
            'name': new_user.name,
            'role': new_user.role
        })
        response.status_code = 201
        return response
Example #17
0
def register_post():
    form = RegisterForm(request.form)

    # Get the values from the form
    if form.validate():
        # TODO: use managers and don't put logic in views
        name = form.name.data
        email = form.email.data
        username = form.username.data
        password = form.password.data

        try:
            user = Users(name=name, email=email, username=username)
            user.set_password(password)
            db.session.add(user)
            db.session.commit()
        except Exception:
            flash("Could not register", "danger")
            return redirect(url_for('register_get'))
        else:
            flash("You are now registered and can login", "success")
            return redirect(url_for('login_get'))

    flash("Check the values", "danger")
    return render_template("register.html", form=form)
Example #18
0
    def post(self):

        claims = get_jwt_claims()

        if claims['role'] != 'admin':
            return None

        parser = reqparse.RequestParser()
        parser.add_argument('login', type=str)
        parser.add_argument('password', type=str)
        parser.add_argument('role', type=str)

        login = parser.parse_args()['login']
        password = parser.parse_args()['password']
        role = parser.parse_args()['role']

        newUser = Users(login=login, password=password, role=role)

        db.session.add(newUser)
        db.session.commit()

        identity = get_jwt_identity()

        user = [{
            'id': x.id,
            'login': x.login,
            'role': x.role
        } for x in Users.query.all() if x.login != identity]
        return user
Example #19
0
def register():
    form = RegisterForm()
    if request.method == 'POST':
        if form.validate_on_submit():
            username = form.username.data
            photo = form.photo.data
            passw = form.passw.data
            fname = form.fname.data
            lname = form.lname.data
            email = form.email.data
            location = form.location.data
            bio = form.bio.data
            joined = getDate()
            filename = secure_filename(photo.filename)
            photo.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))

            user = Users(username, passw, fname, lname, email, location, bio,
                         filename, joined)
            db.session.add(user)
            db.session.commit()

            print("valid")
            return jsonify({'works': "true"})

        return jsonify(error=form_errors(form))
    print("not at all")
Example #20
0
def profile():
    form = ProfileForm()
    if request.method == "POST" and form.validate_on_submit():
        photo = form.Pic.data
        name = form.firstName.data + " " + form.lastName.data
        gender = form.gender.data
        email = form.email.data
        location = form.location.data
        bio = form.biography.data

        filename = secure_filename(photo.filename)
        photo.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
        #print(os.path.join(
        #  app.config['UPLOAD_FOLDER'], filename
        #))
        created_on = getDate()
        user = Users(created_on, name, location, filename, gender, email, bio)

        db.session.add(user)
        db.session.commit()

        flash("user was successfully added", 'success')
        return redirect(url_for("home"))
    print(form.errors)
    return render_template("profile.html", form=form)
Example #21
0
def register():
    user = UserForm()
    message = [{"errors": "critical error"}]
    if request.method == 'POST':
        user.username.data = request.form['username']
        user.password.data = request.form['password']
        user.name.data = request.form['name']
        user.email.data = request.form['email']
        user.location.data = request.form['location']
        user.biography.data = request.form['biography']
        user.photo.data = request.files['photo']
        message = [{"errors": form_errors(user)}]
        if user.validate_on_submit():
            username = user.username.data
            password = user.password.data
            name = user.name.data
            email = user.email.data
            location = user.location.data
            biography = user.biography.data
            photo = user.photo.data

            filename = genUniqueFileName(photo.filename)
            userDB = Users(username, password, name, email, location, biography, filename)
            db.session.add(userDB)
            db.session.commit()
            photo.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))

            message = [{"message": "Successful Registered!"}]

    message = jsonify(message=message)
    return message
Example #22
0
def comadduser():
    user = str(request.form['username'])
    passwd = str(request.form['password'])
    mail = str(request.form['email'])
    dep = str(request.form['area'])
    groups = str(request.form['group'])
    active = request.form.get('useractive')
    accessweb = request.form.get('webaccess')
    queryuser = db.session.query(Users).filter(
        or_(Users.username == user, Users.email == mail)).first()
    if queryuser:
        flash('Ya existe ' + user + ' o el ' + mail + ' verificalo')
        logging.warning('Ya tiene acceso a bastion ' + user)
        return redirect(url_for('users'))
    else:
        if active:
            active = True
        else:
            active = False
        if accessweb:
            accessweb = True
        else:
            accessweb = False
        insertQuery = Users(user, passwd, mail, dep, groups, active, accessweb)
        db.session.add(insertQuery)
        logging.info('Add user' + ' ' + user)
        db.session.commit()
        return redirect(url_for('users'))
Example #23
0
    def post(self):
        """Handle POST request for this view. Url ---> /auth/register"""

        # Query to see if the user already exists
        user = Users.query.filter_by(email=request.data['email']).first()

        if not user:
            # There is no user so we'll try to register them
            try:
                post_data = request.data
                # Register the user
                email = post_data['email']
                password = post_data['password']
                user = Users(email=email, password=password)
                user.save()

                response = {
                    'message': 'You registered successfully. Please log in.'
                }
                # return a response notifying the user that they registered successfully
                return make_response(jsonify(response)), 201
            except Exception as e:
                # An error occured, therefore return a string message containing the error
                response = {'message': str(e)}
                return make_response(jsonify(response)), 401
        else:
            # There is an existing user. We don't want to register users twice
            # Return a message to the user telling them that they they already exist
            response = {'message': 'User already exists. Please login.'}

            return make_response(jsonify(response)), 202
Example #24
0
def register():
    post_data = request.get_json()
    email = post_data.get('email')
    password = post_data.get('password')

    if email is None or password is None:
        responseObject = {'status': 'error', 'message': 'Invalid input.'}
        return jsonify(responseObject), 400
    if Users.query.filter_by(email=email).first() is not None:
        responseObject = {'status': 'error', 'message': 'User already exists.'}
        return jsonify(responseObject), 400
    user = Users(first_name=post_data.get('first_name'),
                 last_name=post_data.get('last_name'),
                 email=post_data.get('email'),
                 password=post_data.get('password'),
                 age=post_data.get('age'),
                 first_day=post_data.get('first_day'),
                 cycle_length=post_data.get('cycle_length'),
                 non_hormonal=post_data.get('non_hormonal'),
                 triphasic=post_data.get('triphasic'),
                 monophasic=post_data.get('monophasic'),
                 progestin=post_data.get('progestin'))
    db.session.add(user)
    db.session.commit()

    auth_token = user.encode_auth_token(user.id)
    responseObject = {
        'status': 'success',
        'message': 'Successfully registered',
        'auth_token': auth_token.decode()
    }
    return jsonify(responseObject), 201
Example #25
0
    def post(self):
        parser = reqparse.RequestParser()
        parser.add_argument('username',
                            help='This field cannot be blank',
                            required=True)
        parser.add_argument('email',
                            help='This field cannot be blank',
                            required=True)
        parser.add_argument('password',
                            help='This field cannot be blank',
                            required=True)
        data = parser.parse_args()
        user_name = data["username"].strip()
        email = data["email"].strip()
        password = data["password"].strip()

        if user_name == "" or email == "" or password == "":
            return jsonify({"Error": "Fields have not been filled"}), 400
        else:
            t = tuple(user_name)
            if t[0].isdigit():
                return jsonify({"error": "username cant be string"}), 400
            else:
                # password_candidste = Users.generate_hash(password)
                new_user = Users(user_name, password, email)

                # user_data = {"username": user_name.lower(), "email": email, "password": password_candidste}

                return new_user.check_user()
Example #26
0
def init_db():
    user = Users(login_name="super",
                 login_pass=generate_password_hash("super"),
                 desc="superUser",
                 update_at=TimesUnit.get_now())
    db.session.add(user)
    db.session.commit()
Example #27
0
    def post(self):
        raw_dict = request.get_json(force=True)
        try:
            schema.validate(raw_dict)
            request_dict = raw_dict['data']['attributes']
            print(raw_dict)
            user = Users(request_dict['firstName'], request_dict['lastName'],
                         request_dict['email'], request_dict['age'],
                         request_dict['birthDate'], request_dict['zipcode'])

            user.add(user)

            query = Users.query.get(user.id)
            results = schema.dump(query).data
            return results, 201

        except ValidationError as err:
            resp = jsonify({"error": err.messages})
            resp.status_code = 403
            return resp

        except SQLAlchemyError as e:
            db.session.rollback()
            resp = jsonify({"error": str(e)})
            resp.status_code = 403
            return resp
Example #28
0
def signup():
    if request.method == 'POST':
        username = request.form.get('username')
        name = request.form.get('name')
        password = request.form.get('password')
        geolocation = requests.post(
            'https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyCDz4WY_rzOR_UnUghAjY1h_f9ut1GC8TM'
        ).json()
        location = str(geolocation['location']['lat']) + "," + str(
            geolocation['location']['lng'])
        if username is None or password is None:
            print("username or password is empty")
            abort(400)
            print(u)
        usernamecheck = Users.query.filter_by(username=username).first()
        if usernamecheck:
            abort(400)
            print("query error")

        user = Users(username=username, name=name, location=location)
        #hashedpassword=user.set_password(password).split(":")[2]
        #user.password = hashedpassword
        user.set_password(password)
        db.session.add(user)
        db.session.commit()
        return render_template('signin.html')
    elif request.method == 'GET':
        return render_template('signup.html')
Example #29
0
def register():
    form = RegisterForm()
    if request.method == "POST" and form.validate_on_submit() == True:
        username = form.username.data
        password = form.password.data
        firstname = form.firstname.data
        lastname = form.lastname.data
        email = form.email.data
        location = form.location.data
        bio = form.biography.data
        photo = form.photo.data
        photo = assignPath(form.photo.data)

        try:
            #create user object and add to database
            user = Users(username, password, firstname, lastname, email,
                         location, bio, photo)
            if user is not None:
                db.session.add(user)
                db.session.commit()

                #flash message to indicate the a successful entry
                success = "User sucessfully registered"
                return jsonify(message=success), 201

        except Exception as e:
            print(e)
            db.session.rollback()
            error = "An error occured with the server. Try again!"
            return jsonify(error=error), 401

    #flash message to indicate registration failure
    failure = "Error: Invalid/Missing user information"
    return jsonify(error=failure), 401
Example #30
0
def register():
    """Accepts user information and saves it to the database"""
    form = RegistrationForm()
    if request.method == "POST" and form.validate_on_submit():
        username = form.username.data
        password = form.password.data
        firstname = form.first_name.data
        lastname = form.last_name.data
        email = form.email.data
        location = form.location.data
        biography = form.biography.data
        photo = form.photo.data
        photoPath = assignFilename(photo)

        try:
            user = Users(username, password, firstname, lastname, email, location, biography, photoPath)
            if user is not None:
                db.session.add(user)
                db.session.commit()
                uploadFile(photo)
                info = [{"message": "User successfully registered"}]
                return jsonify(result=info), 201

        except Exception as e:
            print(e)
            db.session.rollback()
            error = "Server Error. Try again."
            return jsonify(error=error), 401

    all_errors = form_errors(form)
    return jsonify(errors=all_errors)