Introdução
O AccessError do Odoo é uma das mensagens de segurança que os utilizadores encontram com maior frequência. Surge quando alguém tenta ver, alterar, criar ou apagar um registo sem ter as permissões necessárias, funcionando como uma salvaguarda integrada do sistema.
Normalmente a notificação apresenta-se de forma simples e direta, indicando que a ação foi bloqueada por questões de permissão.
AccessError: You are not allowed to access this document.
Este comportamento não é uma falha do sistema; é o mecanismo de segurança do Odoo a impedir operações não autorizadas.
Este guia descreve porque é que o AccessError aparece e mostra passos práticos para o resolver sem diminuir a segurança da plataforma.
O que é um AccessError no Odoo?
Odoo implementa segurança em vários níveis complementares, nomeadamente:
- Grupos de utilizadores
- Listas de controlo de acesso (ACL)
- Regras de registo (record rules)
- Regras de contexto multi-empresa
Sempre que uma operação (ler, escrever, criar, apagar) é bloqueada por qualquer uma destas camadas, o Odoo dispara um AccessError.
Embora este erro seja mais visível na interface, também pode ocorrer em processos automatizados ou integrações.
Causas mais frequentes do AccessError no Odoo
1. Permissão ao nível do modelo em falta (problema de ACL)
As ACLs determinam que ações um determinado grupo pode executar sobre um modelo:
- Ler
- Alterar
- Criar
- Eliminar
Se o grupo do utilizador não tiver a permissão necessária, o Odoo impede a operação.
Exemplo prático:
Um comercial tenta editar lançamentos contabilísticos sem ter permissões de contabilidade.
2. Restrição por regra de registo
As record rules aplicam filtros (domínios) que limitam quais os registos visíveis ou editáveis por cada utilizador.
Exemplo prático:
Um domínio típico pode ser: [('user_id','=',user.id)] — isto limita os registos ao proprietário.
Se o registo consultado não corresponder ao domínio, o acesso é negado.
É comum ver cenários em que tudo funciona para o administrador mas falha para utilizadores normais por causa destas regras.
3. Configuração multi-empresa
Quando um registo pertence a outra empresa, o Odoo bloqueia o acesso se o utilizador operar num contexto de empresa diferente.
Isto acontece frequentemente em implantações que suportam várias empresas dentro do mesmo sistema.
4. Conflito entre permissões herdadas
Um utilizador pode pertencer a vários grupos cujas regras se sobrepõem ou entram em conflito.
Hierarquias complexas de grupos podem, sem intenção, reduzir ou bloquear acessos esperados.
5. Segurança mal configurada em módulos personalizados
Módulos desenvolvidos à medida podem incluir definições de segurança incorrectas que causam bloqueios imprevistos:
- ir.model.access mal definidos
- Regras de registo (record rules)
- Grupos atribuídos de forma inadequada
Essas falhas criam erros de acesso que parecem aleatórios para os utilizadores.
Como resolver um AccessError no Odoo
Passo 1 – Verificar os grupos do utilizador
Navegue até:
Configurações → Utilizadores & Empresas → Utilizadores
Identifique a que grupos o utilizador pertence.
Assegure-se de que o grupo correcto foi atribuído conforme as funções reais do utilizador.
Passo 2 – Rever as ACLs (Access Control Lists)
Aceda a:
Configurações → Técnico → Segurança → Access Control Lists
Confira se o modelo em questão permite as permissões exigidas para o grupo do utilizador.
Passo 3 – Inspecionar as record rules
Aceda a:
Configurações → Técnico → Segurança → Record Rules
Analise os domínios aplicados ao modelo e o seu impacto.
Para testes, desative temporariamente regras suspeitas para confirmar a sua influência.
Passo 4 – Testar com o Administrador
Se o Administrador consegue executar a ação e o utilizador não, isso confirma que se trata de um problema de configuração de segurança.
Passo 5 – Verificar o contexto multi-empresa
Altere o contexto da empresa e verifique se o registo fica acessível — muitas vezes o problema está na empresa seleccionada.
Como evitar AccessError em projetos Odoo futuros
- Boas práticas: manter regras de segurança claras e simples ajuda a reduzir erros de acesso.
- Evite domínios excessivamente restritivos que compliquem operações rotineiras.
- Registe em documentação todas as alterações a ACLs e regras personalizadas.
- Teste módulos novos com utilizadores sem privilégios de administrador para garantir comportamento realista.
- Audite regularmente as configurações multi-empresa para evitar surpresas de visibilidade.
A segurança no Odoo deve ser rígida, mas também previsível e alinhada com os processos do negócio.
Regras de registo demasiado complexas são uma fonte frequente de problemas operacionais e frustrações para os utilizadores.
Como a Dasolo organiza o controlo de acessos no Odoo
Quando aparece um AccessError normalmente há uma desincronização entre permissões do utilizador, regras aplicadas aos registos e o fluxo de trabalho esperado; resolver o sintoma sem analisar a causa pode gerar mais erros no futuro.
Na Dasolo abordamos estes erros com uma revisão completa da arquitectura de permissões para detectar a raiz do problema. As origens mais comuns incluem:
- Regras de registo que se sobrepõem ou entram em conflito
- Grupos configurados de forma inadequada
- Restrições de visibilidade em contextos multi-empresa
- Direitos de acesso incorrectos em módulos personalizados
- Utilizadores de integração sem as permissões necessárias
Em vez de alargar permissões de forma imediata, desenhamos camadas de acesso coerentes com os processos reais da empresa. Um modelo de segurança bem estruturado reduz ocorrências inesperadas de AccessError sem comprometer a protecção dos dados.
Conclusão
O erro AccessError no Odoo aparece quando um utilizador tenta efectuar uma operação para a qual não tem autorização. Embora pareça uma simples limitação, por trás está quase sempre um problema de regras de registo, atribuições de grupos ou configuração multi-empresa.
Revisar cuidadosamente os direitos de acesso, validar a arquitectura de grupos e garantir que as record rules correspondem aos requisitos funcionais evita conflitos repetidos. Um modelo de segurança claro e transparente é vital para manter eficiência operacional e confidencialidade dos dados.
Resolver AccessErrors de forma apropriada fortalece a governança do sistema e mantém o Odoo previsível e seguro à medida que a empresa cresce.