def setUp(self):
     db.create_all()
     sample1 = Users(username="******", password="******")
     sample2 = Users(username="******", password="******")
     db.session.add(sample1)
     db.session.add(sample2)
     db.session.commit()
示例#2
0
def signup():
    if current_user.is_authenticated:
        return flask.redirect(flask.url_for('home'))
    if flask.request.method == 'POST':
        member_username = flask.request.form['member_username']
        member_email = flask.request.form['member_email']
        member_password = flask.request.form['member_passwd']
        repeat_password = flask.request.form['repeat_password']
        invitation_code = flask.request.form['invitation_code']
        existing_username = Users.query.filter_by(username=member_username).first()
        existing_email = Users.query.filter_by(email=member_email).first()

        # Check if the email is allowed:
        if validate_email(member_email) == False:
            flask.flash("You can't use that email here, sorry.")
            return flask.redirect(flask.url_for('signup'))

        # Check if username is allowed:
        if validate_username(member_username) == False:
            flask.flash("Usernames should be between 6-16 characters, contain letters, digits, underscore and dots.")
            return flask.redirect(flask.url_for('signup'))


        # Check if email or username is in use
        if existing_username or existing_email is not None:
            flask.flash("The email or username is in use.")
            return flask.redirect(flask.url_for('signup'))

        # Ensure the password is strong
        if validate_password(member_password) == False:
            flask.flash(f"""That password is weak, use this instead: {gen_password()}""")
            return flask.redirect(flask.url_for('signup'))

        # Ensure the password and repeat password match
        if member_password != repeat_password:
            flask.flash("Passwords didn't match, please try again.")
            return flask.redirect(flask.url_for('signup'))

        valid_token = Invitations.query.filter_by(invitation_code=invitation_code).first()
        # Check if the provided invitation_code is in Invitations table
        if  valid_token is not None:
            new_user = Users(username=member_username, email=member_email, invitation_code=invitation_code, ip_address=get_ip(),
                             account_confirmed=False, user_agent=flask.request.headers.get('User-Agent'))
            new_user.set_password(member_password)
            #valid_token.expired = True                      # to specify that an invitation has expired
            db.session.add(new_user)
            db.session.commit()

            token = generate_confirmation_token(new_user.email)
            confirm_url = flask.url_for('confirm_email', token=token, _external=True)
            html = flask.render_template('./mail_messages/account_activation.html', confirm_url=confirm_url)
            subject = 'Please confirm your email'
            send_email(new_user.email, subject, html)

            flask.flash("Singup was succeed, please check your email for account activation.")
            return flask.redirect(flask.url_for('login'))
        else:
            flask.flash("Something went wrong, please try again.")
            return flask.redirect(flask.url_for('signup'))
    return flask.render_template('./main/member_signup.html')
    def setUp(self):
        """
        Will be called before every test
        """
        # ensure there is no data in the test database when the test starts
        db.session.commit()
        db.drop_all()
        db.create_all()

 

        # create test admin user
        hashed_pw = bcrypt.generate_password_hash('admin2016')
        admin = Users(first_name="admin", last_name="admin", email="*****@*****.**",
        password=hashed_pw)

 

        # create test non-admin user
        hashed_pw_2 = bcrypt.generate_password_hash('test2016')
        employee = Users(first_name="test", last_name="user", email="*****@*****.**",
        password=hashed_pw_2)

 

        # save users to database
        db.session.add(admin)
        db.session.add(employee)
        db.session.commit()
示例#4
0
def userRoute(id):
    # convert request data to dictionary
    data = toDict(request.data)

    success = False  # assume the response is unsucessful
    message = ""  # assume an empty message
    status = ""  # accepted statues: 'OK', 'DENIED', 'FAILURE', 'WARNING', 'INVALID'
    response = {}  # assume the response is empty dict() for now
    user = {}  # set the users to an empty list

    if request.method == 'PUT':
        # Modify a user and find our whether it is successful or not
        success = Users.modifyUser(id,
                                   fname=data['fname'],
                                   lname=data['lname'],
                                   engineer=data['engineer'],
                                   display_image=data['display_image'])

        if success:
            status = "OK"
            message = "User information Updated."
        else:
            status = "FAILURE"
            message = "User does not exist."

    elif request.method == 'GET':
        # Get the user
        user = Users.getUserById(id)

        if user is not None:
            success = True
            status = "OK"
            message = "User returned."
        else:
            success = False
            status = "FAILURE"
            message = "No user by that id."

    elif request.method == 'DELETE':
        # Get the user
        success = Users.deleteUser(id)
        if success:
            status = "OK"
            message = "User deleted"
        else:
            status = "FAILURE"
            message = "User not found"
    else:
        success = False
        status = "WARNING"
        message = "HTTP method invalid."

    response = json.dumps({
        'success': success,
        'status': status,
        'message': message,
        'user': user
    })

    return response
    def setUp(self):

        #Will be called before every test

        # ensure the is no data in the test dataase when the test start
        db.session.commit()
        db.drop_all()
        db.create_all()

        # create test admin user
        admin = Users(first_name="admin",
                      last_name="admin",
                      email="*****@*****.**",
                      password="******")

        # create test non-admin user
        employee = Users(first_name="test",
                         last_name="user",
                         email="*****@*****.**",
                         password="******")

        # save users to database
        db.session.add(admin)
        db.session.add(employee)
        db.session.commit()
    def setUp(self):
        """
        Will be called before every test
        """

        db.session.commit()
        db.drop_all()
        db.create_all()
        #deleting then creating all the apps so its fresh ready for testing.

        # create test admin user
        admin = Users(first_name="admin",
                      last_name="testing",
                      email="*****@*****.**",
                      password="******")

        # create test non-admin user
        employee = Users(first_name="test",
                         last_name="testing",
                         email="*****@*****.**",
                         password="******")

        # save users to database
        db.session.add(admin)
        db.session.add(employee)
        db.session.commit()
def create_user():
    error = ""
    form = LoginForm()

    if request.method == 'POST':
        username = form.username.data
        password = form.password.data
        register = form.register.data
        all_users = Users.query.all()
        if register == True:
            if len(username) == 0:
                error = "Please enter a valid username"
            elif len(password) == 0:
                error = "Please enter a valid password"
            else:
                if len(all_users) == 0:
                    user = Users(username=username, password=password)
                    db.session.add(user)
                    db.session.commit()
                    return redirect(url_for("login"))
                else:
                    for i in all_users:
                        if username.lower() == i.username.lower():
                            error = "Username already exists."
                            return render_template('create.html',
                                                   form=form,
                                                   message=error)

                    user = Users(username=username, password=password)
                    db.session.add(user)
                    db.session.commit()
                    return redirect(url_for("login"))

    return render_template('create.html', form=form, message=error)
示例#8
0
    def test_user(self):
        """
        Test number of users in user table and user information after creating, updating and deleting a record
        """

        # create test review
        user = Users(first_name="Nick",
                     last_name="Jones",
                     email="*****@*****.**",
                     password="******")

        #save review to database
        db.session.add(user)
        db.session.commit

        self.assertEqual(Users.query.count(), 3)

        #update information
        user.first_name = "Nicholas"
        db.session.commit

        self.assertEqual(
            Users.query.filter_by(
                email='*****@*****.**').first().first_name, "Nicholas")

        #delete record
        db.session.delete(user)
        db.session.commit

        self.assertEqual(Users.query.count(), 2)
    def setUp(self):
        db.session.commit()
        db.drop_all()
        db.create_all()

        test_user1 = Users(userName="******")
        test_user2 = Users(userName="******")

        db.session.add(test_user1)
        db.session.add(test_user2)
        db.session.commit()
    def setUp(self):
        chrome_options = webdriver.chrome.options.Options()
        chrome_options.add_argument('--headless')

        self.driver = webdriver.Chrome(options=chrome_options)

        db.create_all()
        sample1 = Users(username="******", password="******")
        sample2 = Users(username="******", password="******")
        db.session.add(sample1)
        db.session.add(sample2)
        db.session.commit()
        self.driver.get(f'http://localhost:5000/')
示例#11
0
def login():
    # print(request.form)

    loginForm = LoginForm()
    registerForm = RegisterForm()

    if (loginForm.validate_on_submit()):
        print("loginForm.validate_on_submit")
        lemail = loginForm.lemail.data
        lpassword = loginForm.lpassword.data
        user = Users.query.filter_by(email=lemail).first()
        if (not user):
            flash("不存在该用户")
            return redirect(url_for(".login"))
        elif not user.check_password(lpassword):
            flash("密码错误")
            return redirect(url_for(".login"))
        else:
            flash("登陆成功")
            print("登陆成功")
            session['email'] = loginForm.lemail.data
            login_user(user, True)
            return redirect(request.args.get('next') or url_for("main.index"))
        # return redirect("/login")

    if (registerForm.validate_on_submit()):
        print("registerForm.validate_on_submit")
        rname = registerForm.rname.data
        remail = registerForm.remail.data
        rpassword = registerForm.rpassword.data

        newuser = Users(name=rname, email=remail)
        newuser.set_password(rpassword)
        db.session.add(newuser)
        db.session.commit()

        token = newuser.generate_confirmation_token()

        send_email(newuser.email,
                   '验证账户',
                   'auth/email/confirm',
                   user=newuser,
                   token=token)
        flash("验证邮件已发送至您的邮箱")

        return redirect(url_for(".login"))

    loginForm.lemail.data = session.get('email')
    return render_template("auth/login.html",
                           loginForm=loginForm,
                           registerForm=registerForm)
示例#12
0
def registration():
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    regform = RegistrationForm()
    if regform.validate_on_submit():
        user = Users(username=regform.username.data, email=regform.email.data)
        user.set_password(regform.password.data)
        db.session.add(user)
        db.session.commit()
        flash('Поздравляем, вы прошли регистрацию')
        return redirect(url_for('login'))
    return render_template('registration.html',
                           title="Регистрация",
                           regform=regform)
示例#13
0
    def setUp(self):
        """Will be called before every test"""
        db.drop_all()
        db.create_all()
        db.session.commit()
        hashed_pw = bcrypt.generate_password_hash('Adm1nSy5temT35t1n8')
        admin_user = Users(
            user_name="Admin",
            email="*****@*****.**",
            password=hashed_pw,
            record=1
            )
        admin_details = Users(
            first_name="Admin",
            middle_name="System",
            last_name="Testing",
            sex = "Male"
            dob_day = 1
            dob_month = 1
            dob_year = 2000
            sub_day = 1
            sub_month = 1
            sub_year = 2020
            sub_time = 00:00
            )

        hashed_pw_2 = bcrypt.generate_password_hash('Sy5temT35t1n8')
        employee = Users(
            user_name="Employee",
            email="*****@*****.**",
            password=hashed_pw_2,
            record=2
            )
        employee_details = Users(
            first_name="Employee",
            middle_name="System",
            last_name="User",
            sex = "Female"
            dob_day = 5
            dob_month = 1
            dob_year = 2000
            sub_day = 5
            sub_month = 1
            sub_year = 2020
            sub_time = 00:00
            )
        db.session.add(admin_details)
        db.session.add(admin)
示例#14
0
    def setUp(self):
        """Setup the test driver and create test users"""
        print(
            "--------------------------NEXT-TEST----------------------------------------------"
        )
        chrome_options = Options()
        chrome_options.binary_location = "/usr/bin/chromium-browser"
        chrome_options.add_argument("--headless")
        self.driver = webdriver.Chrome(
            executable_path="/home/jenkins/chromedriver",
            chrome_options=chrome_options)
        self.driver.get("http://*****:*****@testemaill.com',
                      password=hashed_pw)

        song = Songs(title="test song", artist="test artist")
        db.session.add(admin)
        db.session.add(song)
        db.session.commit()
示例#15
0
def home():

    code_string = ''
    name = ''
    form = NameForm()

    if form.validate_on_submit():

        first_name = form.first_name.data
        last_name = form.last_name.data

        unicode_num_first = requests.post('http://service2:5001',
                                          data=first_name)
        unicode_letter = requests.post('http://service3:5002', data=last_name)

        code_string = unicode_num_first.text + " " + unicode_letter.text

        name = requests.post('http://service4:5003', data=code_string)

        postData = Users(first_name=first_name,
                         last_name=last_name,
                         rapper_name=name.text)
        db.session.add(postData)
        db.session.commit()

    return render_template('home.html',
                           title='Home',
                           form=form,
                           code=code_string,
                           name=name)
示例#16
0
def account_delete():
    user = current_user.id
    account = Users.query.filter_by(id=user).first()
    posts = Posts.query.filter_by(user_id=user).all()
    logout_user()
    for post in posts:
        db.session.delete(post)
    db.session.delete(account)
    db.session.commit()
    return redirect(url_for('register'))

    if current_user.is_authenticated:
        return redirect(url_for('home'))
    form = RegistrationForm()
    if form.validate_on_submit():
        hash_pw=bcrypt.generate_password_hash(form.password.data)

        user=Users(
            first_name=form.first_name.data,
            last_name=form.last_name.data,
            email=form.email.data, 
            password=hash_pw
            )

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

        return redirect(url_for('post'))
    return render_template('register.html', title='Register', form=form)
示例#17
0
def emailRoute():

    # convert request data to dictionary
    data = toDict(request.data)

    success = False  # assume the response is unsucessful
    message = ""  # assume an empty message
    status = ""  # accepted statues: 'OK', 'DENIED', 'FAILURE', 'WARNING', 'INVALID'
    response = {}  # assume the response is empty dict() for now

    # If the request is POST we assume your trying to get email
    if request.method == 'POST':

        # Check if user exists
        success = Users.userExists(data['email'])

        if success:
            message = "User exists."
            status = "WARNING"
        else:
            message = "User does not exist."
            status = "OK"
    else:
        message = "HTTP method invalid."
        status = "WARNING"
        success = False

    response = json.dumps({
        'success': success,
        'status': status,
        'message': message
    })
    return response
示例#18
0
def signup():
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    if request.method == "POST":
        username = request.form['username']
        email = request.form['email']
        password1 = request.form['password1']
        password2 = request.form['password2']
        print(username, email, password2, password1)
        user = Users.query.filter_by(username=username).first()
        email = Users.query.filter_by(email=email).first()
        if user is not None or email is not None:
            flash("Username or Email is in use.")
            return redirect(url_for('signup'))
        if password1 == password2:
            new_user = Users(username=username,
                             email=email,
                             password=password2)
            db.session.add(new_user)
            db.session.commit()
            flash("You have been registered.")
            return redirect(url_for('login'))

        else:
            flash("Something went wrong, please try again!")
            return redirect(url_for('signup'))

    return render_template("signup.html")
示例#19
0
def answerQuestion():
    data = toDict(
        request.data
    )  # toDict takes the request data and converts it to a dictionary

    success = False  # assume the response is unsucessful
    message = ""  # assume an empty message
    status = ""  # accepted statues: 'OK', 'DENIED', 'FAILURE', 'WARNING', 'INVALID'
    response = {}  # assume the response is empty dict() for now
    answer = {}

    if request.method == 'POST':

        # Create a user and find our whether it is successful or not
        answer = Answers.createAnswer(data['text'], data['user_id'],
                                      data['question_id'])

        if answer is not None:
            answer['user'] = Users.getUser(answer['user_id'])
            success = True
            status = "OK"
            message = "Answer added."
        else:
            success = False
            status = "FAILURE"
            message = "Error."

        # make the response a json object
        response = json.dumps({
            'success': success,
            'status': status,
            'message': message,
            'question': question
        })
示例#20
0
    def setUp(self):
        db.session.commit()
        db.drop_all()
        db.create_all()

        testUser = Users(first_name="test",
                         last_name="user",
                         email="*****@*****.**",
                         password=(bcrypt.generate_password_hash("test")))
        db.session.add(testUser)
        testProduct = Product(name="testBoard",
                              style="Fish",
                              volume=55.0,
                              size=9.0,
                              price=500,
                              stock=10,
                              user_id=1)
        db.session.add(testProduct)
        testOrder = Orders(user_id=1)
        db.session.add(testOrder)
        theOrder = Orders.query.order_by(Orders.id.desc()).first()
        testOrder_line = Order_line(order_id=theOrder.id,
                                    product_id=1,
                                    quantity=10,
                                    total=2500)
        db.session.add(testOrder_line)
        db.session.commit()
示例#21
0
def displayimageRoute():
    # convert request data to dictionary
    data = toDict(request.data)

    success = False  # assume the response is unsucessful
    message = ""  # assume an empty message
    status = ""  # accepted statues: 'OK', 'DENIED', 'FAILURE', 'WARNING', 'INVALID'
    response = {}  # assume the response is empty dict() for now

    # If the request is PUT we assume your're trying to update the display_image
    if request.method == 'PUT':

        # Check if display image change wroks
        success = Users.updateDisplayImage(data['user_id'],
                                           data['display_image'])

        if success:
            message = "display_image updated."
            status = "OK"
        else:
            message = "display_image could not be updated, no user with that id."
            status = "FAILURE"
    else:
        message = "HTTP method invalid."
        status = "WARNING"
        success = False

    response = json.dumps({
        'success': success,
        'status': status,
        'message': message
    })
    return response
示例#22
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('home'))
    user = Users(first_name=form.first_name.data,
                 last_name=form.last_name.data,
                 email=form.email.data,
                 password=hashed_pw)
示例#23
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('home'))
    form = RegisterForm()
    if form.validate_on_submit():
        hashed_pw = bcrypt.generate_password_hash(form.password.data)
        user = Users(email=form.email.data, 
                first_name=form.first_name.data,
                last_name=form.last_name.data,
                photo=form.photo.data.filename,
                password=hashed_pw)
        db.session.add(user)
        db.session.commit()
        f = form.photo.data
        app.config["IMAGE_UPLOADS"] = "/tmp"
        f.save(os.path.join(app.config["IMAGE_UPLOADS"], f.filename))
        #return f
        s3 = boto3.resource('s3')
        #bucket = s3.Bucket('qpwoei-qpwoei')
        #bucket.upload_file('tmp/f')
        #bucket=s3.Bucket('qpwoei-qpwoei')
        #bucket.put_object(Body=request.files['f'], Key="/tmp/"+str(f.filename))
        s3.meta.client.upload_file("/tmp/"+str(f.filename), 'qpwoei-qpwoei', "/tmp/"+str(f.filename))
        os.remove("/tmp/"+str(f.filename))
        return redirect(url_for('login'))
    return render_template('register.html', title='Register', form=form)
示例#24
0
def register():
    #Redirects the user if the user has been authenticated
	if current_user.is_authenticated:
		return redirect(url_for('home'))

    #Initiliases the form to be passed over to the HTML
	form = RegistrationForm()
    #Addes the enteries and hashes the password for extra security
	if form.validate_on_submit():
		hashed_pw = bcrypt.generate_password_hash(form.password.data).decode('utf-8')

		user = Users(
			first_name=form.first_name.data,
			last_name=form.last_name.data,
			username=form.username.data,
			email=form.email.data,
			password=hashed_pw
		)

		db.session.add(user)
		db.session.commit()
		flash('You have successfully registered! You can now login')
		return redirect(url_for('login'))

	return render_template('register.html', title='Register', form=form)
示例#25
0
def user_home():
    if request.form:
        user_db = Users(user_name=request.form.get("user_name"), user_email=request.form.get("user_email"), start_date = request.form.get("start_date"), book_id=request.form.get("book_id"))
        db.session.add(user_db)
        db.session.commit()
    user_data = Users.query.all()
    return render_template("user.html", user_data=user_data)
示例#26
0
def register():
    """This function is to process the users details upon registering."""
    if current_user.is_authenticated:
        return redirect(url_for('<user_name>'))
    form = RegistrationForm()
    if form.validate_on_submit():
        hash_pw=bcrypt.generate_password_hash(form.password.data)
        record=Records(
            first_name=form.first_name.data,
            irst_name=form.middle_name.data,
            last_name=form.last_name.data,
            sex=form.sex.data,
            dob_day=form.dob_day,
            dob_month=form.dob_month,
            dob_year=form.dob_year,
            sub_day=form.sub_day,
            sub_month=form.sub_month,
            sub_year=form.sub_year,
            sub_time=form.sub_time
        )
        db.session.add(record)
        db.session.commit()
        link_account = Records.query.last()
        user=Users(
            display_name=form.display_name,
            email=form.email.data, 
            password=hash_pw,
            record=link_account.id
        )
        db.session.add(user)
        db.session.commit()
        return redirect(url_for('<user_name>'))
    return render_template('register.html', title='Register', form=form)
示例#27
0
    def setUp(self):

        #Called before every test
        db.session.commit()
        db.drop_all()
        db.create_all()

        #Create test admin user
        admin = Users(first_name="admin",
                      last_name="admin",
                      email="*****@*****.**",
                      password="******")
        employee = Users(first_name="test",
                         last_name="user",
                         email="*****@*****.**",
                         password="******")
        BenjaminFranklin = Books(
            book="An American Life: Benjamin Franklin",
            author="Walter Isaacson",
            description="It is a biography of Benjamin Franklin",
            rating="5")
        ZeroToOne = Books(book="Zero To One",
                          author="Peter Thiel",
                          description="It stipulates business theory",
                          rating="5")
        ShuaibReview = Reviews(review_author="Shuaib",
                               review="Best book ever",
                               rating="5",
                               book_id="2")
        ThomasReview = Reviews(review_author="Thomas",
                               review="Interesting book",
                               rating="5",
                               book_id="2")

        #Save/Add users to the databse
        db.session.add(admin)
        db.session.add(employee)

        #Save/Add book to database
        db.session.add(BenjaminFranklin)
        db.session.add(ZeroToOne)

        #Save/Add reviews to database
        db.session.add(ShuaibReview)
        db.session.add(ThomasReview)
        db.session.commit()
示例#28
0
 def test_users_model(self):
     piers = Users(first_name="piers",
                   last_name="gilbert",
                   email="*****@*****.**",
                   password="******")
     db.session.add(piers)
     db.session.commit()
     self.assertEqual(Users.query.count(), 3)
示例#29
0
    def setUp(self):

        db.session.commit()
        db.drop_all()
        db.create_all()

        admin = Users(first_name="admin",
                      last_name="admin",
                      email="*****@*****.**",
                      password="******")
        employee = Users(first_name="test",
                         last_name="user",
                         email="*****@*****.**",
                         password="******")

        db.session.add(admin)
        db.session.add(employee)
        db.session.commit()
示例#30
0
def register():
    form = RegistrationForm()
    if form.validate_on_submit():
        hashed_pw = bcrypt.generate_password_hash(form.password.data)
        user = Users(email=form.email.data, password=hashed_pw)
        db.session.add(user)
        db.session.commit()
        return redirect(url_for('post'))
    return render_template('register.html', title='Register', form=form)