feat(#60): Agregar asignación automática de admin al grupo de laboratorio
- Crear script assign_admin_to_lab_group.py - Integrar en proceso de inicialización - Asegurar que admin tenga acceso completo al menú de configuración 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
0cf2e42f7a
commit
8d85d8c3ba
33
init_odoo.py
33
init_odoo.py
|
@ -189,6 +189,39 @@ EOF
|
|||
else:
|
||||
print(f"Advertencia: Fallo al actualizar logo de empresa (código {result.returncode})")
|
||||
|
||||
# --- Asignar admin al grupo de Administrador de Laboratorio ---
|
||||
print("\nAsignando usuario admin al grupo de Administrador de Laboratorio...")
|
||||
sys.stdout.flush()
|
||||
|
||||
if os.path.exists("/app/scripts/assign_admin_to_lab_group.py"):
|
||||
with open("/app/scripts/assign_admin_to_lab_group.py", "r") as f:
|
||||
admin_group_script = f.read()
|
||||
|
||||
assign_admin_command = f"""
|
||||
odoo shell -c {ODOO_CONF} -d {DB_NAME} <<'EOF'
|
||||
{admin_group_script}
|
||||
EOF
|
||||
"""
|
||||
|
||||
result = subprocess.run(
|
||||
assign_admin_command,
|
||||
shell=True,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
check=False
|
||||
)
|
||||
|
||||
print("--- Assign Admin to Lab Group stdout ---")
|
||||
print(result.stdout)
|
||||
print("--- Assign Admin to Lab Group stderr ---")
|
||||
print(result.stderr)
|
||||
sys.stdout.flush()
|
||||
|
||||
if result.returncode == 0:
|
||||
print("Usuario admin asignado exitosamente al grupo de Administrador de Laboratorio.")
|
||||
else:
|
||||
print(f"Advertencia: Fallo al asignar admin al grupo (código {result.returncode})")
|
||||
|
||||
# --- Validación final del logo ---
|
||||
print("\nValidando estado final del logo y nombre...")
|
||||
sys.stdout.flush()
|
||||
|
|
46
scripts/assign_admin_to_lab_group.py
Normal file
46
scripts/assign_admin_to_lab_group.py
Normal file
|
@ -0,0 +1,46 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Script para asignar el usuario admin al grupo de Administrador de Laboratorio
|
||||
"""
|
||||
|
||||
import logging
|
||||
|
||||
# Configurar logging
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
try:
|
||||
# Buscar el usuario admin
|
||||
admin_user = env['res.users'].search([('login', '=', 'admin')], limit=1)
|
||||
if not admin_user:
|
||||
_logger.error("No se encontró el usuario admin")
|
||||
exit(1)
|
||||
|
||||
# Buscar el grupo de Administrador de Laboratorio
|
||||
try:
|
||||
lab_admin_group = env.ref('lims_management.group_lims_admin')
|
||||
except ValueError:
|
||||
_logger.error("No se encontró el grupo de Administrador de Laboratorio")
|
||||
exit(1)
|
||||
|
||||
# Verificar si el usuario ya está en el grupo
|
||||
if lab_admin_group in admin_user.groups_id:
|
||||
_logger.info("El usuario admin ya está en el grupo de Administrador de Laboratorio")
|
||||
else:
|
||||
# Agregar el usuario al grupo
|
||||
admin_user.write({
|
||||
'groups_id': [(4, lab_admin_group.id)]
|
||||
})
|
||||
_logger.info("Usuario admin agregado exitosamente al grupo de Administrador de Laboratorio")
|
||||
|
||||
# Confirmar los grupos del usuario
|
||||
group_names = ', '.join(admin_user.groups_id.mapped('name'))
|
||||
_logger.info(f"Grupos del usuario admin: {group_names}")
|
||||
|
||||
env.cr.commit()
|
||||
_logger.info("Cambios guardados exitosamente")
|
||||
|
||||
except Exception as e:
|
||||
_logger.error(f"Error al asignar usuario admin al grupo: {str(e)}")
|
||||
exit(1)
|
Loading…
Reference in New Issue
Block a user