File size: 1,180 Bytes
87b327e
dc862f6
87b327e
dc862f6
 
87b327e
 
 
dc862f6
87b327e
1f904b3
1ec8511
87b327e
 
 
 
1ec8511
87b327e
640f837
87b327e
 
 
 
640f837
3f1b8d4
 
 
 
 
87b327e
 
 
 
 
3f1b8d4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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]