| import aiosqlite, bcrypt, os | |
| D_P = "cyber_vault.db" | |
| async def init_db(): | |
| async with aiosqlite.connect(D_P) as db: | |
| await db.execute("CREATE TABLE IF NOT EXISTS u_tab (u TEXT PRIMARY KEY, p TEXT)") | |
| await db.commit() | |
| async def add_user(u, p): | |
| un = u.upper().strip() | |
| pw = bcrypt.hashpw(p.encode(), bcrypt.gensalt()).decode() | |
| try: | |
| async with aiosqlite.connect(D_P) as db: | |
| await db.execute("INSERT INTO u_tab (u, p) VALUES (?, ?)", (un, pw)) | |
| await db.commit() | |
| return True | |
| except: return False | |
| async def del_user(u): | |
| async with aiosqlite.connect(D_P) as db: | |
| await db.execute("DELETE FROM u_tab WHERE u = ?", (u.upper().strip(),)) | |
| await db.commit() | |
| async def check_user(u): | |
| async with aiosqlite.connect(D_P) as db: | |
| async with db.execute("SELECT u FROM u_tab WHERE u = ?", (u.upper().strip(),)) as cur: | |
| return await cur.fetchone() is not None | |
| async def list_users(): | |
| async with aiosqlite.connect(D_P) as db: | |
| async with db.execute("SELECT u FROM u_tab") as cur: | |
| r = await cur.fetchall() | |
| return [x[0] for x in r] | |