Exemplo n.º 1
0
async def create_user(conn: AsyncIOMotorClient,
                      user: UserInCreate) -> UserInDB:
    salt = generate_salt()
    hashed_password = get_password_hash(salt + user.password)
    db_user = user.dict()
    db_user['salt'] = salt
    db_user['hashed_password'] = hashed_password
    del db_user['password']

    row = await conn[database_name][user_collection_name].insert_one(db_user)

    return UserInDB(**user.dict())
Exemplo n.º 2
0
def upsert_user_in_db(bucket: Bucket, user_in: UserInCreate, persist_to=0):
    user_doc_id = get_user_doc_id(user_in.username)
    passwordhash = get_password_hash(user_in.password)

    user = UserInDB(**user_in.dict(), hashed_password=passwordhash)
    doc_data = jsonable_encoder(user)
    with bucket.durability(persist_to=persist_to,
                           timeout=COUCHBASE_DURABILITY_TIMEOUT_SECS):
        bucket.upsert(user_doc_id, doc_data)
    return user
Exemplo n.º 3
0
async def create_user(db: AsyncIOMotorClient, user: UserInCreate) -> User:
    data_user = UserInDb(**user.dict())
    data_user.change_password(user.password)

    row = await db[DATABASE_NAME][COLLECTION].insert_one(data_user.dict())

    data_user.id = row.inserted_id

    data_user.created_at = ObjectId(data_user.id).generation_time
    data_user.updated_at = ObjectId(data_user.id).generation_time

    return User(**data_user.dict())
Exemplo n.º 4
0
async def crud_create_user(db: AsyncIOMotorClient,
                           user: UserInCreate) -> UserInDb:
    data_user = UserInDb(**user.dict())
    data_user.change_password(user.password)

    if not data_user.access_key_id:
        data_user.access_key_id = ''.join(
            random.choice(string.ascii_letters + string.digits)
            for _ in range(16))

    if not data_user.secret_key:
        data_user.secret_key = ''.join(
            random.choice(string.ascii_letters + string.digits)
            for _ in range(16))

    row = await db[DATABASE_NAME][COLLECTION].insert_one(data_user.dict())

    data_user.created_at = ObjectId(row.inserted_id).generation_time
    data_user.updated_at = ObjectId(row.inserted_id).generation_time

    return UserInDb(**data_user.dict())
Exemplo n.º 5
0
async def create_user(conn: Connection, user: UserInCreate) -> UserInDB:
    dbuser = UserInDB(**user.dict())
    dbuser.change_password(user.password)

    row = await conn.fetchrow(
        """
        INSERT INTO users (username, email, salt, hashed_password, bio, image) 
        VALUES ($1, $2, $3, $4, $5, $6)
        RETURNING id, created_at, updated_at
        """,
        dbuser.username,
        dbuser.email,
        dbuser.salt,
        dbuser.hashed_password,
        dbuser.bio,
        dbuser.image,
    )

    dbuser.id = row["id"]
    dbuser.created_at = row["created_at"]
    dbuser.updated_at = row["updated_at"]

    return dbuser
def upsert(bucket: Bucket, *, user_in: UserInCreate, persist_to=0):
    user = upsert_in_db(bucket, user_in=user_in, persist_to=persist_to)
    user_in_sync = UserSyncIn(**user_in.dict(), name=user_in.username)
    assert insert_sync_gateway(user_in_sync)
    return user