コード例 #1
0
def login():
    print("IN LOGIN")
    session.pop("user_email", None)
    if request.method == "POST":
        email = request.form["email"]
        try:
            name = request.form['name']
        except Exception as e:
            name = None

        password = request.form['password']

        if name != None:

            insert("user", values=(email, name, password))
            session['user_email'] = email
            return redirect('upload')

        if name == None:
            if checkpassword(password, email):

                session['user_email'] = email  ## session makes a cookie
                return redirect('upload')
        return redirect("/")

        # print(password, email, name)
    return render_template("login.html")
コード例 #2
0
def home():
    """
    Login Page
    """
    session.pop("user_email", None)

    flag = True

    # Store input if a post request is made
    if request.method == "POST":
        name = request.form["name"]
        email = request.form["email"]
        password = request.form["password"]
        repeat_password = request.form["rpassword"]

        if password and not repeat_password:
            if users.check_user_exist(path, email):
                if users.check_hash(path, password, email):
                    session["user_email"] = email
                    return redirect("/index")
                else:
                    flag = False
                    return render_template(
                        "login.html", error="Incorrect Email or Password"
                    )
            else:
                return render_template("login.html", error="User Doesnt Exist")

        if password and repeat_password:
            if not users.check_user_exist(path, email):
                if password == repeat_password:
                    password = users.hash_pwd(password)
                    users.insert(path, "user", (email, name, password, 0))
                    session["user_email"] = email
                    return render_template(
                        "login.html", error="Sign Up Complete - Login"
                    )
                else:
                    return render_template(
                        "login.html", error="Password & Retyped Password Not Same"
                    )
            else:
                return render_template(
                    "login.html", error="This User Already Exists! Try Again"
                )

        if not name and not password and email:
            if users.check_user_exist(path, email):
                reset_password(path, email)
                return render_template(
                    "login.html",
                    error="We have sent you a link to reset your password. Check your mailbox",
                )
            else:
                return render_template(
                    "login.html", error="This Email Doesnt Exist - Please Sign Up"
                )

    if flag:
        return render_template("login.html")
コード例 #3
0
    def test_user_insert(self):
        self.assertIsNone(
            us.insert(
                data.test_data["path"],
                data.user_data["tablename"],
                (
                    data.test_data["email"],
                    data.test_data["name"],
                    data.test_data["password"],
                    data.test_data["code"],
                ),
            )
        )

        with self.assertRaises(sqlite3.OperationalError):
            us.insert(
                data.test_data["path"],
                data.stock_data["tablename"],
                (
                    data.test_data["email"],
                    data.test_data["name"],
                    data.test_data["password"],
                    data.test_data["code"],
                ),
            )
コード例 #4
0
def setup():
    init_db()
    con = engine.connect()
    con.execute(users.delete())
    con.execute(users.insert(), name='admin', email='admin@localhost', password='******')
    con.execute(users.insert(), name='anna', email='anna@localhost', password='******')
    return "ok"
コード例 #5
0
    def setUp(self):
        super(TestBasicUserOperations, self).setUp()
        self.sample_uuid1 = str(uuid.uuid4())
        self.sample_uuid2 = str(uuid.uuid4())
        self.sample_uuid3 = str(uuid.uuid4())

        ins = users.insert().values(user_uuid = self.sample_uuid1, username = u"konrad", password = "******", email = "*****@*****.**")
        self.conn.execute(ins)
        ins = users.insert().values(user_uuid = self.sample_uuid2, username = u"malgosia", password = "******", email = "*****@*****.**")
        self.conn.execute(ins)
        ins = users.insert().values(user_uuid = self.sample_uuid3, username = u"kuba", password = "******", email = "*****@*****.**")
        self.conn.execute(ins)
コード例 #6
0
    def test_uniqueness(self):

        # check unique uuid
        ins = users.insert().values(user_uuid = self.sample_uuid1, username = u"test", password = "******", email = "*****@*****.**")
        self.assertRaises(self.conn.execute(ins))

        #check unique username
        ins = users.insert().values(user_uuid = str(uuid.uuid4()), username = u"konrad", password = "******", email = "*****@*****.**")
        self.assertRaises(self.conn.execute(ins))

        #check unique email
        ins = users.insert().values(user_uuid = str(uuid.uuid4()), username = u"test", password = "******", email = "*****@*****.**" )
        self.assertRaises(self.conn.execute(ins))
コード例 #7
0
    def setUp(self):

        engine = create_engine("sqlite:///:memory:")
        metadata.bind = engine
        metadata.create_all()
        self.conn = engine.connect()
        self.db_handler = BaseDBHandler(self.conn)
        self.uuid1 = str(uuid.uuid4())
        test_user = users.insert().values(user_uuid = self.uuid1, username = u"konrad", password = "******", email = "*****@*****.**")
        self.conn.execute(test_user)
        self.uuid2 = str(uuid.uuid4())
        test_user2 = users.insert().values(user_uuid = self.uuid2, username = u"malgosia", password = "******", email = "*****@*****.**")
        self.conn.execute(test_user2)
コード例 #8
0
    def get(self):
        name = self.get_query_argument("name", None)
        pwd = self.get_query_argument("pwd", None)
        if None in [name, pwd]:
            self.write("name or pwd error")
            return
        self.set_secure_cookie("name", name)
        users.insert(name, pwd)
        sessions.insert(name)

        origin = self.get_query_argument("origin", "/index")
        if origin:
            self.redirect(origin)
        else:
            self.write("insert success and response")
コード例 #9
0
def update_user(user_id):
    if user_id != request.user.get('id'):
        error = {
            'error': 'Unauthorized'
        }
        resp = jsonify(error)
        resp.status_code = 401
        return resp
    data = json.loads(request.get_data())
    error = validate_for_user(data)
    if error:
        resp = jsonify(error)
        resp.status_code = 400
        return resp
    stmt = users.update()\
        .where(users.c.id == int(user_id))\
        .values(username=data.get('username'), password=data.get('password'))
    conn = engine.connect()
    result = conn.execute(stmt)
    status_code = 200
    if not result.rowcount:
        user_insert = users.insert()\
            .values(username=data.get('username'), password=data.get('password'), id=int(user_id))
        conn.execute(user_insert)
        status_code = 201
    conn.close()
    res = {
        'id': user_id
    }
    resp = jsonify(res)
    resp.status_code = status_code
    return resp
コード例 #10
0
def create_user():
    data = json.loads(request.get_data())
    error = validate_for_user(data)
    if error:
        resp = jsonify(error)
        resp.status_code = 400
        return resp
    user_insert = users.insert()\
        .values(username=data.get('username'), password=data.get('password'))
    conn = engine.connect()
    try:
        result = conn.execute(user_insert)
    except sqlalchemy.exc.IntegrityError:
        error = {
            'error': u'username {} already exists'.format(data.get('username'))
        }
        resp = jsonify(error)
        resp.status_code = 400
        conn.close()
        return resp
    conn.close()
    res = {
        'id': result.inserted_primary_key
    }
    resp = jsonify(res)
    resp.status_code = 201
    return resp
コード例 #11
0
    def save_user(self, data):
        """
       Create new user with given data

       Returns : primary key of the user that has been created
       
       Keyword Arguments:
       data -- dictionary containing user field names,
       must have all the keys in USER_FIELDS,
       all additional keys all discarded
       """
        els_to_insert = dict()
        for key, value in data.items():
            if key in USER_FIELDS:
                els_to_insert[key] = value
        for field in USER_FIELDS:
            if field not in els_to_insert.keys():
                raise Exception(
                    "Data not parsed properly, missing {0}".format(field))
        els_to_insert["user_uuid"] = els_to_insert["uuid"]  # i screwed up :(
        del els_to_insert["uuid"]
        ins = users.insert().values(**els_to_insert)
        trans = self.conn.begin()
        try:
            res = self.conn.execute(ins)
            trans.commit()
            return res.inserted_primary_key[0]
        except:
            trans.rollback()
            logging.error("Error creating user")
            raise
コード例 #12
0
def main():
    parse_command_line()
    global engine
    engine = sqlalchemy.create_engine(options.db_url, echo=options.debug, convert_unicode=True)
    if options.init_db:
        metadata.create_all(engine)
        with engine.connect() as conn:
            conn.execute(users.insert(), [
                {'name': 'tester1', 'password': '******'},
                {'name': 'tester2', 'password': '******'},
            ])
        return
    app = Application(
        (('/', RootHandler),
         ('/whoami', WhoAmIHandler),
         ('/login', LoginHandler),
         ('/games', Games),
         (r'/games/(\d+)', Game),
         (r'/games/(\d+)/moves', Moves),
         (r'/games/(\d+)/wait', Wait)),
        static_path=os.path.join(os.path.dirname(__file__), 'static'),
        debug=options.debug,
        cookie_secret='42',
    )
    app.listen(options.port)
    IOLoop.current().start()
コード例 #13
0
ファイル: db_base.py プロジェクト: archdark/consumption
    def save_user(self, data):
       """
       Create new user with given data

       Returns : primary key of the user that has been created
       
       Keyword Arguments:
       data -- dictionary containing user field names,
       must have all the keys in USER_FIELDS,
       all additional keys all discarded
       """
       els_to_insert = dict()
       for key, value in data.items():
           if key in USER_FIELDS:
               els_to_insert[key] = value
       for field in USER_FIELDS:
           if field not in els_to_insert.keys():
               raise Exception("Data not parsed properly, missing {0}".format(field))
       els_to_insert["user_uuid"] = els_to_insert["uuid"] # i screwed up :(
       del els_to_insert["uuid"]
       ins = users.insert().values(**els_to_insert)
       trans = self.conn.begin()
       try:
           res = self.conn.execute(ins)
           trans.commit()
           return res.inserted_primary_key[0]
       except:
           trans.rollback()
           logging.error("Error creating user")
           raise
コード例 #14
0
ファイル: add_user.py プロジェクト: Duelers/users
async def add_user(request):
    async with request.app['db'].acquire() as conn:
        data = await request.json()
        password = data["password"]
        username = data["username"]

        await conn.execute(users.insert().values(username=username.lower(), password=password))

        return web.json_response(data={}, status=201)
コード例 #15
0
    def setUp(self):

        engine = create_engine("sqlite:///:memory:")
        metadata.bind = engine
        metadata.create_all()
        self.conn = engine.connect()
        self.db_handler = BaseDBHandler(self.conn)
        self.uuid1 = str(uuid.uuid4())
        test_user = users.insert().values(user_uuid=self.uuid1,
                                          username=u"konrad",
                                          password="******",
                                          email="*****@*****.**")
        self.conn.execute(test_user)
        self.uuid2 = str(uuid.uuid4())
        test_user2 = users.insert().values(user_uuid=self.uuid2,
                                           username=u"malgosia",
                                           password="******",
                                           email="*****@*****.**")
        self.conn.execute(test_user2)
コード例 #16
0
def sample_data(engine):
    conn = engine.connect()
    conn.execute(users.insert(), [{
        'id': 1,
        'login': '******',
        'passwd': sha256_crypt.hash('password'),
        'superuser': True,
        'disabled': False
    }])
    conn.execute(users.insert(), [{
        'id': 2,
        'login': '******',
        'passwd': sha256_crypt.hash('password'),
        'superuser': False,
        'disabled': False
    }])

    conn.execute(users.insert(), [{
        'id': 3,
        'login': '******',
        'passwd': sha256_crypt.hash('password'),
        'is_superuser': False,
        'disabled': False
    }])

    conn.execute(permissions.insert(), [{
        'id': 1,
        'user_id': 1,
        'perm_name': 'protected',
    }])
    conn.execute(permissions.insert(), [{
        'id': 2,
        'user_id': 2,
        'perm_name': 'public',
    }])
    conn.execute(permissions.insert(), [{
        'id': 3,
        'user_id': 3,
        'perm_name': 'public',
    }])

    conn.close()
コード例 #17
0
    def setUp(self):

        engine = create_engine("sqlite:///:memory:")
        metadata.bind = engine
        metadata.create_all()
        self.conn = engine.connect()
        self.db_handler = BaseDBHandler(self.conn)
        self.uuid1 = str(uuid.uuid4())
        test_user = users.insert().values(user_uuid = self.uuid1, username = u"konrad", password = "******", email = "*****@*****.**")
        self.conn.execute(test_user)
        self.uuid2 = str(uuid.uuid4())
        test_user2 = users.insert().values(user_uuid = self.uuid2, username = u"malgosia", password = "******", email = "*****@*****.**")
        self.conn.execute(test_user2)
        self.uuid3 = str(uuid.uuid4())
        test_user3 = users.insert().values(user_uuid = self.uuid3, username = u"kuba", password = "******", email = "*****@*****.**")
        self.conn.execute(test_user3)

        self.product_uuid1 = str(uuid.uuid4())
        self.product_uuid2 = str(uuid.uuid4())
        self.product_uuid3 = str(uuid.uuid4())

        product_1 = products.insert().values(product_uuid = self.product_uuid1, product_name = u"wiertarka", product_desc = u"test" )
        self.conn.execute(product_1)
        product_2 = products.insert().values(product_uuid = self.product_uuid2, product_name = u"suszarka", product_desc = u"test" )
        self.conn.execute(product_2)
        product_3 = products.insert().values(product_uuid = self.product_uuid3, product_name = u"pralka", product_desc = u"test" )
        self.conn.execute(product_3)

        buyout1 = bought_products.insert().values(quantity = 10, user_id = 1, product_id = 1)
        self.conn.execute(buyout1)
        buyout2 = bought_products.insert().values(quantity = 5, user_id = 1, product_id = 2)
        self.conn.execute(buyout2)
        buyout3 = bought_products.insert().values(quantity = 1, user_id = 1, product_id = 3)
        self.conn.execute(buyout3)


        buyout4 = bought_products.insert().values(quantity = 11, user_id = 2, product_id = 1)
        self.conn.execute(buyout4)
        buyout5 = bought_products.insert().values(quantity = 1, user_id = 2, product_id = 2)
        self.conn.execute(buyout5)
        buyout6 = bought_products.insert().values(quantity = 2, user_id = 3, product_id = 1)
        self.conn.execute(buyout6)
コード例 #18
0
    def setUp(self):
        super(TestBoughtProductsOperations, self).setUp()
        self.sample_uuid1 = str(uuid.uuid4())
        self.sample_uuid2 = str(uuid.uuid4())
        self.sample_uuid3 = str(uuid.uuid4())

        ins = users.insert().values(user_uuid = self.sample_uuid1, username = u"konrad", password = "******", email = "*****@*****.**")
        self.conn.execute(ins)
        ins = users.insert().values(user_uuid = self.sample_uuid2, username = u"malgosia", password = "******", email = "*****@*****.**")
        self.conn.execute(ins)
        ins = users.insert().values(user_uuid = self.sample_uuid3, username = u"kuba", password = "******", email = "*****@*****.**")
        self.conn.execute(ins)

        ins = products.insert().values(product_uuid = str(uuid.uuid4()), product_name = u"siekiera", product_desc = u"siekierezada...dobry film")
        self.conn.execute(ins)

        ins = products.insert().values(product_uuid = str(uuid.uuid4()), product_name = u"pila mechaniczna", product_desc = u"masakra")
        self.conn.execute(ins)

        ins = products.insert().values(product_uuid = str(uuid.uuid4()), product_name = u"wykalaczka", product_desc = u"do zebow")
        self.conn.execute(ins)
コード例 #19
0
def create_user(conn, session, client, body):
    user = body['user']
    insert_result = conn.execute(users.insert().values(name=user['name']))
    user_id = insert_result.inserted_primary_key[0]

    users_roles_values = list(
        map(lambda role: {
            'user_id': user_id,
            'role_id': role['id']
        }, user['roles']))
    conn.execute(users_roles.insert().values(users_roles_values))

    client.publish('userCreated', json.dumps({'status': 'success'}), qos=1)
コード例 #20
0
ファイル: itit_db.py プロジェクト: kavabangos/aiohttp_test
def sample_data():
    conn = engine.connect()
    conn.execute(permissions.insert(), [
                 {'id': 1, 'permissions': 'admin'},
                 {'id': 2, 'permissions': 'read'},
                 {'id': 3, 'permissions': 'blocked'}]
                 )

    conn.execute(users.insert().values(
        name='admin',
        surname='admin',
        login='******',
        birth_date=datetime.date(1970, 1, 1),
        perm_id=1,
        pass_hash='f6fdffe48c908deb0f4c3bd36c032e72'
    ))

    conn.close()
コード例 #21
0
async def fill_data(conn):
    async with conn.begin():
        roles_ids = []
        for name in roles_data:
            role_id = await conn.scalar(roles.insert().values(name=name))
            roles_ids.append(role_id)

        users_ids = []
        for name in users_data:
            user_id = await conn.scalar(users.insert().values(name=name))
            users_ids.append(user_id)

        max_roles = min(len(roles_data), 5)

        for user_id in users_ids:
            user_roles = sample(roles_ids, randint(0, max_roles))
            for user_role in user_roles:
                await conn.execute(users_roles.insert().values(
                    user_id=user_id, role_id=user_role))
コード例 #22
0
ファイル: app.py プロジェクト: lenque/aio-http
async def post_user(request):
    try:
        data = await request.json()
        async with request.app['db'].acquire() as conn:
            # all_columns = [column.name for column in users.columns]
            all_columns = users.columns.keys()
            res = {}
            for c in all_columns:
                if c != 'id':
                    try:
                        res[c] = data[c]
                    except Exception:
                        return aiohttp.web.HTTPBadRequest(
                            text=f'param {c.upper()} is required')
            await conn.execute(users.insert().values(res))
            # await conn.execute(users.insert({'name': data['name'], 'surname': data['surname'],
            # 'patronymic': data['patronymic'], 'gender': data['gender'], 'age': data['age']}))
            return aiohttp.web.HTTPCreated()
    except Exception:
        return aiohttp.web.HTTPBadRequest()
コード例 #23
0
ファイル: auth.py プロジェクト: samuelmontoyag/mailer_cdt
def new_user(user_id=None):
    data = dict()
    if user_id:
        user = User.get_by_id(user_id)
        if user is None:
            flash("No se ha encontrado el usuario", "error")
        else:
            data = {
                'user_name': user.get("user_name"),
                'user_login': user.get("user_login"),
                'user_role': user.get("user_role"),
                'editando': True
            }
    if request.method == 'POST':
        data = {
            'user_name': request.form.get("user_name"),
            'user_login': request.form.get("user_login"),
            'user_role': request.form.get("user_role")
        }
        if user_id is None:
            if User.get_by_username(data.get("user_login")) is None:
                new = users.insert(data).execute()
                flash("Usuario agregado correctamente", "success")
            else:
                flash("Este usuario ya existe", "error")
        else:
            users.update().where(users.c.user_id == user_id).\
                           values({'user_login': data.get("user_login"),
                                   'user_name': data.get("user_name"),
                                   'user_role': data.get("user_role")
                                   }
                                  ).execute()
            data['editando'] = True
            flash("Usuario actualizado correctamente", "success")
        if len(request.form.get("user_pass")) > 0 and data.get("editando"):
            User.set_password(data.get("user_login"),
                              request.form.get("user_pass"))
            flash(u"Contraseña actualizada correctamente", "success")

    return render_template('auth/create_user.html', **data)
コード例 #24
0
async def create_user(user: schemas.UserCreate):
    fake_hashed_password = user.password + "notreallyhashed"
    db_user = users.insert().values(email=user.email,
                                    hashed_password=fake_hashed_password)
    user_id = await database.execute(db_user)
    return schemas.User(**user.dict(), id=user_id)
コード例 #25
0
    def setUp(self):

        engine = create_engine("sqlite:///:memory:")
        metadata.bind = engine
        metadata.create_all()
        self.conn = engine.connect()
        self.db_handler = BaseDBHandler(self.conn)
        self.uuid1 = str(uuid.uuid4())
        test_user = users.insert().values(user_uuid=self.uuid1,
                                          username=u"konrad",
                                          password="******",
                                          email="*****@*****.**")
        self.conn.execute(test_user)
        self.uuid2 = str(uuid.uuid4())
        test_user2 = users.insert().values(user_uuid=self.uuid2,
                                           username=u"malgosia",
                                           password="******",
                                           email="*****@*****.**")
        self.conn.execute(test_user2)
        self.uuid3 = str(uuid.uuid4())
        test_user3 = users.insert().values(user_uuid=self.uuid3,
                                           username=u"kuba",
                                           password="******",
                                           email="*****@*****.**")
        self.conn.execute(test_user3)

        self.product_uuid1 = str(uuid.uuid4())
        self.product_uuid2 = str(uuid.uuid4())
        self.product_uuid3 = str(uuid.uuid4())

        product_1 = products.insert().values(product_uuid=self.product_uuid1,
                                             product_name=u"wiertarka",
                                             product_desc=u"test")
        self.conn.execute(product_1)
        product_2 = products.insert().values(product_uuid=self.product_uuid2,
                                             product_name=u"suszarka",
                                             product_desc=u"test")
        self.conn.execute(product_2)
        product_3 = products.insert().values(product_uuid=self.product_uuid3,
                                             product_name=u"pralka",
                                             product_desc=u"test")
        self.conn.execute(product_3)

        buyout1 = bought_products.insert().values(quantity=10,
                                                  user_id=1,
                                                  product_id=1)
        self.conn.execute(buyout1)
        buyout2 = bought_products.insert().values(quantity=5,
                                                  user_id=1,
                                                  product_id=2)
        self.conn.execute(buyout2)
        buyout3 = bought_products.insert().values(quantity=1,
                                                  user_id=1,
                                                  product_id=3)
        self.conn.execute(buyout3)

        buyout4 = bought_products.insert().values(quantity=11,
                                                  user_id=2,
                                                  product_id=1)
        self.conn.execute(buyout4)
        buyout5 = bought_products.insert().values(quantity=1,
                                                  user_id=2,
                                                  product_id=2)
        self.conn.execute(buyout5)
        buyout6 = bought_products.insert().values(quantity=2,
                                                  user_id=3,
                                                  product_id=1)
        self.conn.execute(buyout6)
コード例 #26
0
 def test_inserting_empty_values(self):
     ins = users.insert().values(user_uuid = "", username = u"test", password = "******", email = "*****@*****.**")
     self.assertRaises(self.conn.execute(ins))
     ins = users.insert().values(user_uuid = str(uuid.uuid4()), username = u"", password = "******", email = "*****@*****.**")
     self.assertRaises(self.conn.execute(ins))