Example #1
0
def createUser():
    try:
        username = request.form['email']
        password = request.form['password']
        email = request.form['email']
        validation_token = binascii.b2a_hex(os.urandom(15))
        # first_name = request.form['first_name']
        # last_name = request.form['last_name']
        # The db only accepts a certain pass length
        user = tryConnection(lambda: models.Users(
            username=username,
            email=email,
            first_name="",
            last_name="",
            password=bcrypt.generate_password_hash(password),
            last_login=datetime.datetime.now(),
            account_validation_token=validation_token))
        db.session.add(user)
        db.session.commit()
        message = Template(users.getValidationMessage())
        send_email(["*****@*****.**"], "Welcome to the NewsMap!",
                   message.substitute({
                       "port": port,
                       "token": validation_token,
                       "email": email,
                       "url": app.config.get("url")
                   }))
        return redirect("./?success=0")
    except IntegrityError as e:
        db.session.flush()
        # error = {'error_code': e.orig[0], 'error_string': e.orig[1]}
        return redirect("./?error=2&username="******"&email=" + email)
    except Exception as e:
        db.session.flush()
        raise e
Example #2
0
def newuser():
    if request.method == "POST":
        """Get data"""
        data = request.form
        
        fname = data["fname"]
        lname = data["lname"]
        role = data["role"]
        email = data["email"]
        uid = genID()
        
        """Create new user"""
        user = models.Users(userid=uid,firstname=fname,lastname=lname,role=role,email=email)
        db.create_all()
        db.session.add(user)
        
        """Send registration email"""
        
        to_name = fname + " " + lname
        to_addr = email
        link = request.url_root+'user/register/'+str(uid)
        
        msg = """ Dear {},\n Please follow the following link to complete user registration:\n {} \n Regards, \n TitleMangementSystem """.format(to_name,link)
        subj = "Complete TitleManagementSystem User Registration"
        
        if send_email(to_name,to_addr,subj,msg):
             db.session.commit()
        else:
            flash('There was an error, please try again')
        
    return render_template("newuser.html")
Example #3
0
def signUp():
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    form = forms.SignUpForm()
    if form.validate_on_submit():
        sid = ''
        try:
            sid = special_id(form.student_number.data, form.session.data)
        except:
            flash('Invalid student number or session code.')
            redirect(url_for('signUp'))
        user = models.Users(id=sid,
                            student_number=form.student_number.data,
                            session_code=form.session.data,
                            pref_name=form.name.data)
        if models.Users.query.filter_by(id=user.id).first() is not None:
            flash('You have already created an account, logging in now.')
            login_user(user)
            return redirect(url_for('game_start'))
        db.session.add(user)
        db.session.commit()
        flash('Congratulations, you are now a registered user!')
        login_user(user)
        return redirect(url_for('game_start'))
    return render_template('signup.html', title='Sign Up', form=form)
Example #4
0
def seed():
    user = models.Users()
    user.username = '******'
    user.password = '******'
    user.display_name = 'stacki'
    user.admin = True
    user.local = True
    user.created_on = datetime.datetime.now()
    db.session.add(user)
    db.session.commit()
Example #5
0
def form():
    form = AddUsers()
    if form.validate_on_submit():
        u = models.Users(fname=form.fname.data,
                         lname=form.lname.data,
                         email=form.email.data)
        db.session.add(u)
        db.session.commit()
    else:
        flash_errors(form)

    return render_template('form.html', form=form)
Example #6
0
    def test_api_rejects_expired_token(self):
        """Test API rejects expired token"""

        user = models.Users("ben", "1234")
        new_token = user.generate_auth_token(2)
        new_token = str(new_token, "utf-8")
        time.sleep(3)
        res2 = self.client().post("/bucketlists/v1.0/",
                                  data={"name": "make billions"},
                                  headers={"Authorization": new_token})

        self.assertEqual(res2.status_code, 403)
        self.assertIn('"message": "Expired token, request for a new one"',
                      str(res2.data))
Example #7
0
def add_user(uuid):
    user = models.Users(uuid=uuid)
    db.session.add(user)
    db.session.commit()

    if is_have_user(uuid):
        return jsonify({
            'msg': 'new_user_write',
            'code': 200,
        })
    else:
        return jsonify({
            'msg': 'user_already_exists',
            'code': 206,
        })
Example #8
0
def signup():
    form = RegistrationForm()
    if form.validate_on_submit():
        p = models.Users(
            name=form.name.data,
            email=form.email.data,
            password=form.password.data,
        )
        db.session.add(p)
        db.session.commit()
        return redirect(url_for('login'))
    else:
        return render_template('registration.html',
                               title='Register',
                               form=form)
Example #9
0
def create_user():
    """Create New User"""
    parser = reqparse.RequestParser()
    parser.add_argument('username', type=str, required=True, help="Username missing")
    parser.add_argument('name', type=str, required=True, help="Name missing")
    args = parser.parse_args(strict=True)
    user_code = get_user_code(args['username'])
    if user_code is not None:
        return make_response(jsonify({'error': 'Username taken'}), 400)
    new_user = dict(
        username = args['username'],
        name = args['name']
        )
    u = models.Users(**new_user)
    db.session.add(u)
    db.session.commit()    
    return make_response(jsonify({'success': True}))
Example #10
0
def process_add_admin():
    if check():
        return redirect(url_for('admin_login'))
    username = request.form['username']
    password = request.form['password']
    name = request.form['name']
    if models.Admins.query.filter_by(id=username).first() is None and \
            models.Users.query.filter_by(id=username).first() is None:
        user = models.Users(id=username, admin=True, name=name)
        admin = models.Admins(id=username, password=password, active=True)
        db.session.add(user)
        db.session.add(admin)
        db.session.commit()
        flash('Admin ' + username + ' has successfully been added')
        return redirect(url_for('admin_home'))
    else:
        flash(
            'That username has already been taken, please chose another username'
        )
        return redirect(url_for('add_admin'))
Example #11
0
def createAdmin():
    from datetime import datetime
    datetime.now()
    now = datetime.now()
    if models.Users.query.filter_by(username="******").first():
        print "The 'admin' already exists"
        return
    adminUser = models.Users(name="administrator",
                             username="******",
                             password="******",
                             phone=12233,
                             birthday="ddd",
                             sex=1,
                             qq=123123,
                             email="ddd",
                             department=1,
                             access=1,
                             image="sdd",
                             adddate=now,
                             status=1)
    db.session.add(adminUser)
    db.session.commit()
Example #12
0
def process_signup():
    session_code = request.form['session_code']
    uid = str(request.form['uid'])
    name = request.form['name']
    special_id = uid + session_code
    if len(special_id) <= 60:
        check = models.Users.query.filter_by(id=special_id).first()
        if check:
            login_user(check)
            return redirect(url_for('game_initiate'))
        new_user = models.Users(
            id=special_id,
            admin=False,
            name=name
        )
        db.session.add(new_user)
        db.session.commit()
        login_user(new_user)
        session['values'] = generate_demand(session_code)
        return redirect(url_for('game_initiate'))
    else:
        flash('Incorrect login details')
        return redirect(url_for('index'))
Example #13
0
############### adding employees to empoyees tables ##############

employeeOnline = models.Employee(name="online", password="******")
tempEmployee = models.Employee(name="tempemployee1", password="******")

db.session.add(employeeOnline)
db.session.add(tempEmployee)

db.session.commit()

############### adding employees to empoyees tables ##############

############### adding unsers to empoyees tables ##############

guestUser = models.Users(name="guest", password="******", email="*****@*****.**")
PeteUser = models.Users(name="Pete", password="******", email="*****@*****.**")
DomUser = models.Users(name="Dom", password="******", email="*****@*****.**")
FreddieUser = models.Users(name="Freddie", password="******", email="*****@*****.**")
StefanUser = models.Users(name="Stefan", password="******", email="*****@*****.**")
RoryUser = models.Users(name="Rory", password="******", email="*****@*****.**")
LuciaUser = models.Users(name="Lucia", password="******", email="*****@*****.**")

db.session.add(guestUser)
db.session.add(PeteUser)
db.session.add(DomUser)
db.session.add(FreddieUser)
db.session.add(StefanUser)
db.session.add(RoryUser)
db.session.add(LuciaUser)
Example #14
0
import os
import unittest
from app import db, models

addUser = models.Users(email="*****@*****.**",
                       password="******",
                       contact_number="3784748433")
addStaff = models.Staff(email="*****@*****.**",
                        password="******",
                        contact_number="47832917438",
                        name="John Smith",
                        address="23 fakelane, leeds",
                        shop_id=1)
addBikeType = models.Bike_Types(gears=7,
                                weight=17.5,
                                brand="test brand",
                                model="test model",
                                colour="blue",
                                user_type="adult",
                                use_type="manual")
addBike = models.Bikes(bike_type_id=0, shop_id=1)


def logIn(user, password):
    for users in models.Users.query.all():
        if users.email == user\
            and users.password == password:
            return True
    return False

Example #15
0
#!flask/bin/python
from migrate.versioning import api
from config import SQLALCHEMY_DATABASE_URI
from config import SQLALCHEMY_MIGRATE_REPO
from app import db, models
import os.path
db.create_all()
if not os.path.exists(SQLALCHEMY_MIGRATE_REPO):
    api.create(SQLALCHEMY_MIGRATE_REPO, 'database repository')
    api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
else:
    api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO,
                        api.version(SQLALCHEMY_MIGRATE_REPO))

admin = models.Users(username='******', password='******')
db.session.add(admin)
db.session.commit()
Example #16
0
def addUsersAndRentals():

    # add all the users
    numberOfUsers = 72 * 3  # one user for each bike

    names = [
        "Tom", "Alice", "Peter", "Gabriel", "Tohfah", "Della", "June",
        "Matthew", "Conor", "Thomas", "James", "Stephen", "Max", "Mac",
        "Clarissa", "Jane", "Richard", "Lisa", "Paul", "Allen", "Sam",
        "Jennifer", "Jane", "Imogen", "Rowena"
    ]
    secondNames = [
        "Alderson", "Carey", "Yates", "Robinson", "Faucher", "Acaster",
        "Brimm", "Gunn", "DeMarco", "Beckett", "Fuhn", "Amis", "McNiel",
        "Hacket", "Calle", "Court", "Smith", "Birch", "Parkes", "Dilys",
        "Liddle", "King", "Hearne", "Thor"
    ]
    for i in range(numberOfUsers):
        firstName = random.choice(names)
        secondName = random.choice(secondNames)
        print("i = " + str(i) + " Adding " + firstName + " " + secondName)
        newUser = models.Users(
            email=firstName + secondName + str(random.randint(0, 10000)) +
            "@gmail.com",
            password=bcrypt.generate_password_hash("password").decode('utf-8'),
            contact_number="07" + str(random.randint(100000000, 999999999)),
            times_rented=random.randint(0, 10))
        db.session.add(newUser)

        # add a random payment method to each user
        cardNumber = str(random.randint(1111111111111111, 9999999999999999))
        lastFourDigits = cardNumber[-4:]  # the last four digits
        cardNumber = bcrypt.generate_password_hash(cardNumber).decode(
            'utf-8'
        ) + "##cardname=" + lastFourDigits  # so we have something to show to the user
        print("Card number = ", cardNumber)
        newPaymentMethod = models.Payment_Methods(
            card_number=cardNumber,
            expiration_month=str(random.randint(1, 12)),
            expiration_year=str(random.randint(2019, 2023)),
            cvv=bcrypt.generate_password_hash(str(random.randint(
                111, 999))).decode('utf-8'),
            user_id=i + 1)
        db.session.add(newPaymentMethod)

    db.session.commit()

    allBikes = models.Bikes.query.all()
    allRentalRates = models.Rental_Rates.query.all()
    numberOfBikes = 72 * 3

    # making it so that every user has one 'order' in the system.
    # that one order contains exactly one bike.
    # this is so that the system is full of users and we can make
    # graphs.
    for i in range(numberOfUsers):
        year = 2019  # this year, so we can see how changing the dates effect things
        month = random.randint(1, 12)
        day = random.randint(1, 27)
        startDate = datetime.date(year, month, day)
        daysToRent = random.randint(5, 70)
        endDate = startDate + timedelta(days=daysToRent)

        # find the price of the order from the rental rates
        bikeID = allBikes[i].id
        bikeTypeID = allBikes[i].bike_type_id

        thisRentalRate = -1
        for rentalRate in allRentalRates:
            if (rentalRate.bike_type_id == bikeTypeID):
                thisRentalRate = rentalRate

        price = calculateRentPrice(daysToRent, thisRentalRate)

        # add the order for the customer
        print("i = " + str(i) + " Adding order " + str(year) + "/" +
              str(month) + "/" + str(day) + ": " + str(price))
        print("Renting bikeID: " + str(bikeID) + " with rental rates " +
              str(thisRentalRate.daily_rate) + ":" +
              str(thisRentalRate.weekly_rate) + ":" +
              str(thisRentalRate.monthly_rate))
        print("For " + str(daysToRent) + " days")
        print("bikeTypeID: " + str(bikeTypeID))

        # add the order
        newOrder = models.Orders(
            date=startDate,
            total_price=price,
            user_id=i + 1,
        )

        db.session.add(newOrder)

        # add the rental for the customer
        newRental = models.Rented_Bikes(start_date=startDate,
                                        end_date=endDate,
                                        price=price,
                                        bike_id=bikeID,
                                        order_id=i + 1)
        db.session.add(newRental)

    db.session.commit()
    time.sleep(2)
Example #17
0
    def setUp(self):

        # Encrypt the passwords
        password1 = "testPassword"
        password2 = "secret-123"
        tmpPassword1 = hashlib.sha1()
        tmpPassword1.update(password1.encode('utf-8'))
        tmpPassword2 = hashlib.sha1()
        tmpPassword2.update(password2.encode('utf-8'))

        # Create 2 users
        user1 = models.Users(username="******",
                             password=tmpPassword1.hexdigest(),
                             registration_date=datetime.datetime.utcnow(),
                             name="Paul",
                             surname="Mark",
                             birth="08/11/1997")

        user2 = models.Users(username="******",
                             password=tmpPassword2.hexdigest(),
                             registration_date=datetime.datetime.utcnow(),
                             name="Marie",
                             surname="Blum",
                             birth="14/05/1997")

        # Create 3 posts
        post1 = models.Posts(date=datetime.datetime.utcnow(),
                             text="Hi everyone!",
                             author=user1,
                             location="Leeds UK",
                             hates_number=0,
                             comments_number=0,
                             reports_number=0)
        post2 = models.Posts(date=datetime.datetime.utcnow(),
                             text="This is my first post!",
                             author=user2,
                             location="Paris FR",
                             hates_number=0,
                             comments_number=0,
                             reports_number=0)
        post3 = models.Posts(date=datetime.datetime.utcnow(),
                             text="And this one is my second one",
                             author=user2,
                             location="London UK",
                             hates_number=0,
                             comments_number=0,
                             reports_number=0)

        # Create 4 dislikes
        hate1 = models.Hates(author=user1, post=post1)
        post1.hates_number += 1
        hate2 = models.Hates(author=user1, post=post2)
        post2.hates_number += 1
        hate3 = models.Hates(author=user2, post=post1)
        post1.hates_number += 1
        hate4 = models.Hates(author=user2, post=post2)
        post2.hates_number += 1

        # Create 3 comments
        comment1 = models.Comments(date=datetime.datetime.utcnow(),
                                   text="Hello!",
                                   author=user1,
                                   post=post2)

        post2.comments_number += 1

        comment2 = models.Comments(date=datetime.datetime.utcnow(),
                                   text="Yes!",
                                   author=user1,
                                   post=post3)

        post3.comments_number += 1

        comment3 = models.Comments(date=datetime.datetime.utcnow(),
                                   text="I'm here!",
                                   author=user2,
                                   post=post1)

        post1.comments_number += 1

        # Create 2 reports
        report1 = models.Reports(author=user1, post=post2)
        post2.reports_number += 1
        report2 = models.Reports(author=user1, post=post3)
        post3.reports_number += 1

        # Add everything
        db.session.add(user1)
        db.session.add(user2)
        db.session.add(post1)
        db.session.add(post2)
        db.session.add(post3)
        db.session.add(hate1)
        db.session.add(hate2)
        db.session.add(hate3)
        db.session.add(hate4)
        db.session.add(comment1)
        db.session.add(comment2)
        db.session.add(comment3)
        db.session.add(report1)
        db.session.add(report2)