Example #1
0
    def test_create_existing_user_fails(self):
        user = '******'
        passwd = 'fakepass'

        with RollbackContext() as rollback:
            users.create_user(user, passwd)
            rollback.prependDefer(users.delete_user, user)

            with self.assertRaises(OperationFailed):
                users.create_user(user, passwd)
Example #2
0
    def test_create_existing_user_fails(self):
        user = '******'
        passwd = 'fakepass'

        with RollbackContext() as rollback:
            users.create_user(user, passwd)
            rollback.prependDefer(users.delete_user, user)

            with self.assertRaises(OperationFailed):
                users.create_user(user, passwd)
Example #3
0
    def test_add_user_to_primary_group(self):
        user = '******'
        passwd = 'fakepass'
        group = 'unit_test_fake_group'

        with RollbackContext() as rollback:
            users.create_group(group)
            rollback.prependDefer(users.delete_group, group)

            users.create_user(user, passwd)
            rollback.prependDefer(users.delete_user, user)

            users.add_user_to_primary_group(user, group)

            users_group = users.get_users_from_group(group)
            self.assertEqual(len(users_group), 1)
            self.assertIn(user, users_group)
Example #4
0
    def test_create_user(self):
        user = '******'
        passwd = 'fakepass'

        common_users = users.get_users()
        with RollbackContext() as rollback:
            users.create_user(user, passwd)
            rollback.prependDefer(users.delete_user, user)

            new_users = users.get_users()
            self.assertEqual(len(new_users), len(common_users) + 1)

            enc_passwd = spwd.getspnam(user)[1]
            invalid_passwd = [None, "NP", "!", "!!",  "", "LK", "*"]
            self.assertNotIn(enc_passwd, invalid_passwd)

            self.assertEqual(crypt.crypt(passwd, enc_passwd), enc_passwd)
Example #5
0
def register_user():
    new_user = request.data
    user = json.loads(new_user.decode())
    success = users.create_user(user)
    if (success == True):
        return {'message': "Registration successful"}, 200
    else:
        return {'err': "Registration unsuccessful"}, 500
Example #6
0
    def test_add_user_to_primary_group(self):
        user = '******'
        passwd = 'fakepass'
        group = 'unit_test_fake_group'

        with RollbackContext() as rollback:
            users.create_group(group)
            rollback.prependDefer(users.delete_group, group)

            users.create_user(user, passwd)
            rollback.prependDefer(users.delete_user, user)

            users.add_user_to_primary_group(user, group)

            users_group = users.get_users_from_group(group)
            self.assertEqual(len(users_group), 1)
            self.assertIn(user, users_group)
Example #7
0
    def test_create_user(self):
        user = '******'
        passwd = 'fakepass'

        common_users = users.get_users()
        with RollbackContext() as rollback:
            users.create_user(user, passwd)
            rollback.prependDefer(users.delete_user, user)

            new_users = users.get_users()
            self.assertEqual(len(new_users), len(common_users) + 1)

            enc_passwd = spwd.getspnam(user)[1]
            invalid_passwd = [None, "NP", "!", "!!", "", "LK", "*"]
            self.assertNotIn(enc_passwd, invalid_passwd)

            self.assertEqual(crypt.crypt(passwd, enc_passwd), enc_passwd)
Example #8
0
def index():
    # API Token exist?
    if 'X_API_Token' not in request.headers:
        return make_response(jsonify({'message': 'API token not found'}), 400)
    # API Token Correct?
    if not check_api_token(request.headers['X_API_Token']):
        return make_response(jsonify({'message': 'API token is not correct'}),
                             400)
    # API Key Corrected, begin create user.
    if request.method == 'POST':
        created_user = create_user()
        return make_response(jsonify(created_user))
    else:
        return make_response(jsonify({'message': 'This is user view root'}))
def register():
    if request.method == 'GET':
        names, mails = get_usrnames_and_emails()
        return render_template('register.html',names =names, mails=mails)
    if request.method == 'POST':
        name = request.form.get("name")
        lastname = request.form.get('lastname')
        username = request.form.get('username')
        password = request.form.get('logpassword')
        print(name,lastname,username,password)
        photo = request.files['photo']
        pw_hash = bcrypt.generate_password_hash(password).decode('utf-8')
        age = request.form.get('age')
        print(age)
        if age == '':
            age = 10
        email = request.form.get("email")
        type = request.form.get("type")
        error = create_user(name, lastname, username, pw_hash, age, email, type, photo)
        if error != "":
            print(error)
        return render_template('index.html')
Example #10
0
def add_user_page():
    locations = get_all_location_with_dict()
    if request.method == "GET":
        useraccount = Combine()
        return render_template("/users/create.html", form=useraccount, errors={}, locations=locations)
    else:
        useraccount = Combine()
        if useraccount.validate_on_submit():
            photopath = "/static/" + request.files["photo-photo"].filename
            hashedpassword = hasher.hash(useraccount.data["useraccount"]["password"])
            data = {"location": useraccount.data["contactinfo"]["location"], "photo": photopath, "username": useraccount.data["useraccount"]['username'], "password": hashedpassword, "phoneNumber": useraccount.data["contactinfo"]["phoneNumber"], "email": useraccount.data["contactinfo"]["email"], "fax": useraccount.data["contactinfo"]["fax"], "homePhone": useraccount.data["contactinfo"]["homePhone"], "workmail": useraccount.data["contactinfo"]["workmail"], "lastEntry": datetime.datetime.now(), "joinedDate": datetime.datetime.now(), "securityAnswer": useraccount.data["useraccount"]["securityAnswer"], "membershiptype": useraccount.data["useraccount"]["membershiptype"], "name": useraccount.data["person"]["name"], "surname": useraccount.data["person"]["surname"], "gender": useraccount.data["person"]["gender"], "birthday": useraccount.data["person"]["birthday"], "educationLevel": useraccount.data["person"]["educationLevel"], "facebook": useraccount.data["socialmedia"]["facebook"], "twitter": useraccount.data["socialmedia"]["twitter"], "instagram": useraccount.data["socialmedia"]["instagram"], "discord": useraccount.data["socialmedia"]["discord"], "youtube": useraccount.data["socialmedia"]["youtube"], "linkedin": useraccount.data["socialmedia"]["linkedin"], "membership": 0}
            if useraccount.data["useraccount"]["membershiptype"] == "Boss":
                data["membership"] = 1
            else:
                data["membership"] = 2
            response = create_user(data)
            if response[0]:
                request.files["photo-photo"].save("./static/" + request.files["photo-photo"].filename)
                session['username'] = data["username"]
                session['password'] = data["password"]
                session['membershiptype'] = 'Boss' if data['membership'] == 1 else 'Customer'
                session['userid'] = response[1]
                session['logged_in'] = True
                return redirect(url_for("users_page"))
            else:
                errs = [["Username is already taken"]]
                errjson = json.dumps(errs)
                return render_template("/users/create.html", form=useraccount, errors=errjson, locations=locations)
        else:
            errs = []
            for fieldName, errorMessages in useraccount.errors.items():
                errs.append(errorMessages)
            errjson = json.dumps(errs)
            locations = get_all_location_with_dict()
            return render_template("/users/create.html", form=useraccount, errors=errjson, locations=locations)
        return render_template("/users/create.html", form=useraccount)
def facebook_authorized(resp):
    next_url = request.args.get('next') or '/'
    if resp is None or 'access_token' not in resp:
        return redirect(next_url)

    session['facebook_token'] = (resp['access_token'], '')
    data = facebook.get('/me').data
    profile_picture = 'https://graph.facebook.com/' + data['id'] + '/picture?width=1000'
    # profile_picture = facebook.get('/me/picture').data

    if 'id' in data and 'name' in data and 'email' in data and 'link' in data:

        provider_user_id = data['id']
        name = data['name']
        username = data['username']
        user_email = data['email']
        profile_url = data['link']
        # profile_picture = profile_picture['url']

        generated_name = str(uuid.uuid1()) + '.jpg'

        user = User.query.filter(User.email == user_email).first()
        if not user:
            user = users.create_user(
                name=name,
                email=user_email,
                password=None,
                active=True
            )
            users.commit()

            current_user_id = str(user.id)
            folder_path = app.config['UPLOADS_FOLDER'] + '/user/' + current_user_id + '/'
            new_folder = os.path.dirname(folder_path)
            if not os.path.exists(new_folder):
                os.makedirs(new_folder)

            filepath = os.path.join(folder_path, generated_name)
            urllib.urlretrieve(profile_picture, filepath)

            new_photo = 'user/' + current_user_id + '/' + generated_name

            User.query.filter(User.id == user.id).update({User.photo: new_photo})

        connection = Connection.query.filter(Connection.user_id == user.id,
                                             Connection.provider_id == 'facebook').first()
        if not connection:
            print "no prior connection"
            connection = Connection(
                user=user,
                provider_id='facebook',
                provider_user_id=provider_user_id,
                access_token=resp['access_token'],
                profile_url=profile_url,
                image_url=generated_name,
                full_name=name,
                display_name=username
            )
            db.session.add(connection)
            db.session.commit()
        else:
            print "updating prior connection"
            connection.access_token = resp['access_token']
            db.session.commit()

        if connection and login_user(user):
            users.commit()
            return redirect(next_url)

    return redirect("/login")
Example #12
0
class state:
    ...


s = state()


# App configuration
templates_path = os.path.abspath("./templates")
app = Flask(__name__, template_folder=templates_path)
app.secret_key = "somekey"
app.config["SEND_FILE_MAX_AGE_DEFAULT"] = 0


# Create tables
users.create_user(path)
contactus.create_tbl(path)
stock.make_tbl(path)


def get_current_price(symbol: str) -> float:
    """Gets current closing price of stock using Ticker method

    Args:
        symbol: Stock Symbol

    Returns:
        float: Closing Stock price
    """
    ticker = yf.Ticker(symbol)
    todays_data = ticker.history(period="1d")
Example #13
0
def facebook_authorized(resp):
    next_url = request.args.get('next') or '/'
    if resp is None or 'access_token' not in resp:
        return redirect(next_url)

    session['facebook_token'] = (resp['access_token'], '')
    data = facebook.get('/me').data
    profile_picture = 'https://graph.facebook.com/' + data[
        'id'] + '/picture?width=1000'
    # profile_picture = facebook.get('/me/picture').data

    if 'id' in data and 'name' in data and 'email' in data and 'link' in data:

        provider_user_id = data['id']
        name = data['name']
        username = data['username']
        user_email = data['email']
        profile_url = data['link']
        # profile_picture = profile_picture['url']

        generated_name = str(uuid.uuid1()) + '.jpg'

        user = User.query.filter(User.email == user_email).first()
        if not user:
            user = users.create_user(name=name,
                                     email=user_email,
                                     password=None,
                                     active=True)
            users.commit()

            current_user_id = str(user.id)
            folder_path = app.config[
                'UPLOADS_FOLDER'] + '/user/' + current_user_id + '/'
            new_folder = os.path.dirname(folder_path)
            if not os.path.exists(new_folder):
                os.makedirs(new_folder)

            filepath = os.path.join(folder_path, generated_name)
            urllib.urlretrieve(profile_picture, filepath)

            new_photo = 'user/' + current_user_id + '/' + generated_name

            User.query.filter(User.id == user.id).update(
                {User.photo: new_photo})

        connection = Connection.query.filter(
            Connection.user_id == user.id,
            Connection.provider_id == 'facebook').first()
        if not connection:
            print "no prior connection"
            connection = Connection(user=user,
                                    provider_id='facebook',
                                    provider_user_id=provider_user_id,
                                    access_token=resp['access_token'],
                                    profile_url=profile_url,
                                    image_url=generated_name,
                                    full_name=name,
                                    display_name=username)
            db.session.add(connection)
            db.session.commit()
        else:
            print "updating prior connection"
            connection.access_token = resp['access_token']
            db.session.commit()

        if connection and login_user(user):
            users.commit()
            return redirect(next_url)

    return redirect("/login")