File size: 2,006 Bytes
819447c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import sqlite3
import streamlit_authenticator as stauth
import os

def add_user(username, name, password):
    """Adiciona um novo usuário ao banco de dados"""
    db_path = os.getenv('DB_PATH', 'users.db')
    hashed_password = stauth.Hasher([password]).generate()[0]
    
    conn = sqlite3.connect(db_path)
    cursor = conn.cursor()
    try:
        cursor.execute(
            'INSERT INTO users (username, name, password) VALUES (?, ?, ?)',
            (username, name, hashed_password)
        )
        conn.commit()
        print(f"Usuário {username} adicionado com sucesso!")
    except sqlite3.IntegrityError:
        print(f"Erro: Usuário {username} já existe.")
    finally:
        conn.close()

def remove_user(username):
    """Remove um usuário do banco de dados"""
    db_path = os.getenv('DB_PATH', 'users.db')
    conn = sqlite3.connect(db_path)
    cursor = conn.cursor()
    cursor.execute('DELETE FROM users WHERE username = ?', (username,))
    conn.commit()
    print(f"Usuário {username} removido com sucesso!" if cursor.rowcount > 0 else f"Usuário {username} não encontrado.")
    conn.close()

def list_users():
    """Lista todos os usuários no banco de dados"""
    db_path = os.getenv('DB_PATH', 'users.db')
    conn = sqlite3.connect(db_path)
    cursor = conn.cursor()
    cursor.execute('SELECT username, name FROM users')
    users = cursor.fetchall()
    conn.close()
    for username, name in users:
        print(f"Username: {username}, Nome: {name}")

if __name__ == "__main__":
    # Inicializar o banco de dados
    conn = sqlite3.connect(os.getenv('DB_PATH', 'users.db'))
    cursor = conn.cursor()
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS users (
            username TEXT PRIMARY KEY,
            name TEXT NOT NULL,
            password TEXT NOT NULL
        )
    ''')
    conn.commit()
    conn.close()

    # Exemplos de uso
    add_user("cliente2", "Cliente Dois", "senha_forte_456")
    list_users()
    # remove_user("cliente2")