65 lines
2.3 KiB
Python
65 lines
2.3 KiB
Python
from functions.database import Usuario, Role, get_db_connection
|
|
|
|
def create_test_users():
|
|
"""Cria usuários de teste para o sistema"""
|
|
session = get_db_connection()
|
|
try:
|
|
# Buscar roles
|
|
secretario_celula = session.query(Role).filter_by(nivel=Role.SECRETARIO_CELULA).first()
|
|
secretario_setor = session.query(Role).filter_by(nivel=Role.SECRETARIO_SETOR).first()
|
|
secretario_cr = session.query(Role).filter_by(nivel=Role.SECRETARIO_CR).first()
|
|
secretario_geral = session.query(Role).filter_by(nivel=Role.SECRETARIO_GERAL).first()
|
|
|
|
# Criar usuários de teste
|
|
usuarios = [
|
|
{
|
|
'username': 'celula',
|
|
'email': 'celula@example.com',
|
|
'password': 'celula123',
|
|
'role': secretario_celula,
|
|
'tipo': 'SECRETARIO_CELULA'
|
|
},
|
|
{
|
|
'username': 'setor',
|
|
'email': 'setor@example.com',
|
|
'password': 'setor123',
|
|
'role': secretario_setor,
|
|
'tipo': 'SECRETARIO_SETOR'
|
|
},
|
|
{
|
|
'username': 'cr',
|
|
'email': 'cr@example.com',
|
|
'password': 'cr123',
|
|
'role': secretario_cr,
|
|
'tipo': 'SECRETARIO_CR'
|
|
},
|
|
{
|
|
'username': 'geral',
|
|
'email': 'geral@example.com',
|
|
'password': 'geral123',
|
|
'role': secretario_geral,
|
|
'tipo': 'SECRETARIO_GERAL'
|
|
}
|
|
]
|
|
|
|
for user_data in usuarios:
|
|
# Verificar se o usuário já existe
|
|
if not session.query(Usuario).filter_by(username=user_data['username']).first():
|
|
user = Usuario(
|
|
username=user_data['username'],
|
|
email=user_data['email']
|
|
)
|
|
user.set_password(user_data['password'])
|
|
user.tipo = user_data['tipo']
|
|
user.roles.append(user_data['role'])
|
|
session.add(user)
|
|
|
|
session.commit()
|
|
print("Usuários de teste criados com sucesso!")
|
|
|
|
except Exception as e:
|
|
print(f"Erro ao criar usuários de teste: {e}")
|
|
session.rollback()
|
|
raise
|
|
finally:
|
|
session.close() |