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")