from odoo import api, SUPERUSER_ID def post_init_hook(env): """Crear permisos de acceso después de instalar el módulo.""" _create_access_rights(env) def _create_access_rights(env): """Crear los registros ir.model.access para los modelos del módulo.""" Access = env['ir.model.access'].sudo() # Definir permisos: (model_name, group_xmlid, read, write, create, unlink) permissions = [ # WhatsApp Account ('whatsapp.account', 'base.group_user', 1, 0, 0, 0), ('whatsapp.account', 'base.group_system', 1, 1, 1, 1), # WhatsApp Conversation ('whatsapp.conversation', 'base.group_user', 1, 1, 1, 0), ('whatsapp.conversation', 'base.group_system', 1, 1, 1, 1), # WhatsApp Message ('whatsapp.message', 'base.group_user', 1, 1, 1, 0), ('whatsapp.message', 'base.group_system', 1, 1, 1, 1), # Wizards ('whatsapp.send.wizard', 'base.group_user', 1, 1, 1, 1), ('whatsapp.mass.wizard', 'base.group_user', 1, 1, 1, 1), ] for model_name, group_xmlid, read, write, create, unlink in permissions: # Buscar el modelo model = env['ir.model'].sudo().search([('model', '=', model_name)], limit=1) if not model: continue # Buscar el grupo group = env.ref(group_xmlid, raise_if_not_found=False) if not group: continue # Verificar si ya existe existing = Access.search([ ('model_id', '=', model.id), ('group_id', '=', group.id) ], limit=1) if existing: continue # Crear el permiso access_name = f'{model_name}.{group_xmlid.split(".")[-1]}' Access.create({ 'name': access_name, 'model_id': model.id, 'group_id': group.id, 'perm_read': read, 'perm_write': write, 'perm_create': create, 'perm_unlink': unlink, })