Pular para o conteúdo
Skillpedia
Segurança48 mil · #3738

odoo-security-rules

Faz seu agente controlar quem pode ver e fazer o quê no Odoo. Ele define permissões de acesso para usuários e grupos.

O que ela faz

Esta ferramenta ajuda a configurar quem pode ver e modificar informações em um sistema chamado Odoo. Ela cria regras para garantir que apenas as pessoas certas tenham acesso aos dados corretos.

Quando usar

  • ✓Ao criar um novo módulo no Odoo e definir quem pode acessar o quê.
  • ✓Quando você quer que os usuários vejam apenas os seus próprios dados ou os dados da sua empresa.
  • ✓Para corrigir erros de 'Acesso Negado' ou 'Você não tem permissão'.

Exemplo do que pedir para a IA

“Preciso configurar o acesso para que usuários normais possam ver seus próprios pedidos de venda, mas não os de outros.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/odoo-security-rules/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/odoo-security-rules/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Você descreve como as permissões de acesso devem funcionar. A ferramenta gera os códigos necessários para o Odoo entender e aplicar essas regras de segurança.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill odoo-security-rules

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/odoo-security-rules/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Regras de Segurança do Odoo

Visão Geral

A segurança no Odoo é gerenciada em dois níveis: acesso em nível de modelo (quem pode ler/escrever em quais modelos) e regras de registro em nível de registro (quais registros um usuário pode ver). Esta habilidade ajuda você a escrever entradas ir.model.access.csv corretas e regras de registro baseadas em domínio ir.rule.

Quando Usar Esta Habilidade

  • Configurando direitos de acesso para um novo módulo personalizado.
  • Restringindo registros para que os usuários vejam apenas seus próprios dados ou os dados de sua empresa.
  • Depurando erros de "Acesso Negado" ou "Você não tem permissão para acessar".
  • Implementando regras de visibilidade de registro multiempresa.

Como Funciona

  1. Ativar: Mencione @odoo-security-rules e descreva o cenário de acesso.
  2. Gerar: Obtenha linhas de acesso CSV e regras de registro XML corretas.
  3. Depurar: Cole um erro de acesso e obtenha um diagnóstico com a correção.

Exemplos

Exemplo 1: ir.model.access.csv

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_hospital_patient_user,hospital.patient.user,model_hospital_patient,base.group_user,1,0,0,0
access_hospital_patient_manager,hospital.patient.manager,model_hospital_patient,base.group_erp_manager,1,1,1,1

Nota: Use base.group_erp_manager para gerentes de ERP, não base.group_system — esse grupo é reservado para superusuários técnicos do Odoo. Sempre crie um grupo personalizado para funções de gerente específicas do módulo:

<record id="group_hospital_manager" model="res.groups">
    <field name="name">Hospital Manager</field>
    <field name="category_id" ref="base.module_category_hidden"/>
</record>

Exemplo 2: Regra de Registro — Usuários Veem Apenas Seus Próprios Registros

<record id="rule_hospital_patient_own" model="ir.rule">
    <field name="name">Hospital Patient: Own Records Only</field>
    <field name="model_id" ref="model_hospital_patient"/>
    <field name="domain_force">[('create_uid', '=', user.id)]</field>
    <field name="groups" eval="[(4, ref('base.group_user'))]"/>
    <field name="perm_read" eval="True"/>
    <field name="perm_write" eval="True"/>
    <field name="perm_create" eval="True"/>
    <field name="perm_unlink" eval="False"/>
</record>

Importante: Se você omitir <field name="groups">, a regra se torna global e se aplica a TODOS os usuários, incluindo administradores. Sempre atribua um grupo, a menos que você pretenda explicitamente uma restrição global.

Exemplo 3: Regra de Registro Multiempresa

<record id="rule_hospital_patient_company" model="ir.rule">
    <field name="name">Hospital Patient: Multi-Company</field>
    <field name="model_id" ref="model_hospital_patient"/>
    <field name="domain_force">
        ['|', ('company_id', '=', False),
               ('company_id', 'in', company_ids)]
    </field>
    <field name="groups" eval="[(4, ref('base.group_user'))]"/>
</record>

Melhores Práticas

  • ✅ Faça: Comece com o acesso mais restritivo e abra conforme necessário.
  • ✅ Faça: Use company_ids (plural) em regras multiempresa — ele inclui todas as empresas às quais o usuário pertence.
  • ✅ Faça: Teste as regras usando um usuário não administrador em modo de depuração — sudo() ignora todas as regras de registro completamente.
  • ✅ Faça: Crie grupos de segurança dedicados por módulo em vez de reutilizar grupos centrais do Odoo.
  • ❌ Não faça: Dê perm_unlink = 1 a usuários regulares, a menos que a exclusão seja explicitamente exigida pelo processo de negócios.
  • ❌ Não faça: Deixe group_id em branco em ir.model.access.csv, a menos que você pretenda conceder acesso público (não autenticado).
  • ❌ Não faça: Use base.group_system para gerentes de módulo — isso concede acesso técnico completo, incluindo configurações de servidor.

Limitações

  • Não cobre controle de acesso em nível de campo (restrições de leitura/escrita ir.model.fields) — isso requer substituições personalizadas em OWL ou Python.
  • As regras de acesso de usuário do portal e público têm nuances adicionais não totalmente abordadas aqui; teste cuidadosamente com base.group_portal.
  • As regras de registro são ignoradas por sudo() — qualquer código executado em contexto de superusuário ignora todas as entradas ir.rule.
  • Não cobre segurança de linha via PostgreSQL (RLS) — o Odoo gerencia toda a segurança na camada ORM.
Perguntas frequentes

O que é `ir.model.access.csv`?

É um arquivo que define permissões gerais para acessar diferentes tipos de informação (modelos) no Odoo.

O que são 'record rules' (`ir.rule`)?

São regras mais específicas que definem quais registros (linhas de dados) um usuário pode ver ou modificar, com base em condições como 'pertence à minha empresa' ou 'foi criado por mim'.

Por que não devo usar `base.group_system`?

O grupo `base.group_system` é para superusuários técnicos do Odoo e concede acesso total, incluindo configurações sensíveis. É melhor criar grupos específicos para gerentes de módulos.

Detalhes

Descrição original do autor

Expert in Odoo access control: ir.model.access.csv, record rules (ir.rule), groups, and multi-company security patterns.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3738
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas