Gestão de Acessos

Agências, tenants, tipos de usuário e perfis de permissão — como o sistema controla quem acessa o quê.

Usuário Cliente

Clientes (ou usuários normais) são os donos/operadores dos sites. Eles só acessam os tenants aos quais foram vinculados manualmente.

Características

Criando um Usuário Cliente

Forma 1: Master cria o cliente

  1. Acesse Usuários → Novo Usuário
  2. Preencha nome, e-mail e senha
  3. Deixe Agência vazia e Tipo como "Padrão"
  4. Selecione os tenants aos quais o usuário terá acesso (checkboxes)
  5. Opcionalmente selecione um perfil de permissão para definir o que o usuário pode acessar
  6. Salve

Forma 2: Membro de agência cria o cliente

  1. Logado como membro de agência, acesse Usuários → Novo Usuário
  2. Selecione o tipo "Cliente do Tenant"
  3. Selecione o tenant da agência ao qual vincular
  4. Preencha nome, e-mail e senha
  5. Opcionalmente selecione um perfil de permissão inicial
  6. Salve

Forma 3: Outro usuário do tenant cria

  1. Logado no contexto do tenant, acesse Usuários → Novo Usuário
  2. O tenant já vem fixo (o atual)
  3. Preencha nome, e-mail e senha
  4. Salve e depois configure permissões
As permissões efetivas de um usuário são determinadas exclusivamente pelo perfil de permissão atribuído. Sem um perfil (ou permissões customizadas), o usuário terá acesso apenas às rotas definidas como always_allowed.

Perfis de Permissão

Perfis de permissão definem quais rotas do painel um usuário pode acessar. Um perfil é um conjunto nomeado de rotas que pode ser reutilizado em vários usuários.

Conceitos Principais

ConceitoDescrição
Scope tenant — rotas de conteúdo (blog, páginas, produtos, configurações, etc.)
platform — rotas de gestão (fábrica de templates, gestão de tenants, agências, etc.)
Assignable By Quem pode atribuir este perfil a um usuário:
master — apenas master pode atribuir
agency — master ou membro de agência pode atribuir
client — qualquer usuário com permissão de gerenciar usuários pode atribuir
Sistema Perfis criados automaticamente na instalação. Não podem ser excluídos.

Perfis de Sistema

PerfilScopeDescrição
Acesso FábricaplatformRotas da fábrica (templates master, segmentos, páginas modelo)
Gestor de TenantsplatformRotas de gestão (tenants, domínios, agências)
Admin CompletotenantTodas as rotas de conteúdo do tenant
Editor de ConteúdotenantPáginas, blog, produtos, imóveis, veículos, portfólio, etc.
VisualizadortenantApenas visualização (index/show) em todos os módulos
AtendimentotenantMensagens de contato, orçamentos e comentários

Modos de Permissão

Ao atribuir permissões a um usuário, existem 3 modos:

ModoComo funciona
Perfil Seleciona um perfil pré-definido. O usuário herda todas as rotas do perfil. Se o perfil for atualizado, todos os usuários refletem a mudança.
Customizado Seleciona rotas individualmente (checkboxes agrupados por funcionalidade). Mais flexível, mas mais trabalhoso de manter.
Nenhum Remove todas as permissões. O usuário pode logar mas não acessa nenhuma funcionalidade.
Permissões de tenant são globais — o mesmo conjunto de rotas vale para todos os tenants que o usuário pode acessar. Se precisar de permissões diferentes por tenant, crie usuários separados.

Cadeia de Verificação

Quando um usuário acessa qualquer rota do painel, a verificação segue esta ordem:

1. Usuário é master? → PERMITIDO (bypassa tudo)
2. Rota está em always_allowed (33 rotas)? → PERMITIDO
3. Rota está em master_only? → BLOQUEADO
4. Rota é scope platform?
    → Verifica perfil platform (tenant_id = NULL)
5. Rota é scope tenant?
    → Usuário tem acesso ao tenant? (agency_id ou pivot)
    → Verifica perfil tenant (apply_to_all_tenants = true)
    → Rota está no perfil ou nas rotas customizadas? → PERMITIDO / BLOQUEADO

Rotas Sempre Permitidas (always_allowed)

Estas 33 rotas são acessíveis por qualquer usuário autenticado, independente de permissões:

Criando um Perfil de Permissão

  1. Acesse Perfis de Permissão (em Gestão, na sidebar)
  2. Clique em Novo Perfil
  3. Opcionalmente, use um template como ponto de partida (Editor, Atendimento ou Gerenciador)
  4. Defina nome, descrição, scope (tenant ou platform) e assignable_by
  5. Marque as rotas desejadas (organizadas por grupos)
  6. Salve

Atribuindo Permissões a um Usuário

  1. Na listagem de Usuários, clique no ícone de chave () do usuário
  2. Escolha o modo: Perfil, Customizado ou Nenhum
  3. Se perfil: selecione o perfil desejado no grid de cards
  4. Se customizado: marque as rotas individualmente
  5. Para master: opcionalmente atribua perfis de plataforma (seção separada na mesma tela)
  6. Salve
Todas as alterações de permissão ficam registradas no log de auditoria (permission_audit_log), incluindo quem fez a alteração e quando.

Guia Prático

Passo a passo completo para configurar uma agência funcional do zero.

Passo 1: Criar a Agência

  1. Logado como Master, acesse Agências → Nova Agência
  2. Preencha: nome, e-mail de contato, telefone
  3. Configure o branding do painel: nome no painel e logo (aparecem para a equipe da agência)
  4. Opcionalmente configure "Desenvolvido por" (créditos no rodapé dos sites)
  5. Ative "Dashboard" se quiser que a equipe tenha acesso ao dashboard de métricas
  6. Salve

Passo 2: Criar o Primeiro Membro da Agência

  1. Acesse Usuários → Novo Usuário
  2. Preencha nome, e-mail e senha
  3. No campo Agência, selecione a agência criada no passo 1
  4. Marque "Pode ver Dashboard" se a agência tem dashboard ativo
  5. Salve

Passo 3: Atribuir Permissões ao Membro

  1. Na listagem de Usuários, clique no ícone do membro criado
  2. Na seção Permissões do Tenant: selecione modo Perfil e escolha "Admin Completo" (ou outro perfil)
  3. Na seção Permissões da Plataforma (abaixo): marque "Gestor de Tenants" se quiser que ele gerencie tenants e domínios
  4. Salve

Passo 4: Criar um Tenant (Site)

Pode ser feito pelo Master ou pelo membro da agência:

  1. Acesse Tenants → Novo Tenant
  2. Preencha o nome do site
  3. Se logado como Master: selecione a agência
  4. Se logado como membro de agência: a vinculação é automática
  5. Selecione o segmento e mantenha "Aplicar Starter Kit" marcado
  6. Salve → será redirecionado para configurar domínios

Passo 5: Configurar Domínios

  1. Na tela de edição do tenant, clique em "Adicionar Domínio"
  2. Digite o domínio (ex: meucliente.com.br)
  3. Marque como Principal
  4. Se necessário, adicione www.meucliente.com.br e configure para redirecionar ao principal
  5. Marque SSL se o domínio usa HTTPS
  6. Salve

Passo 6: Criar Usuário Cliente Final (Opcional)

Se o dono do site precisa de acesso ao painel:

  1. Logado como membro de agência, acesse Usuários → Novo Usuário
  2. Selecione tipo "Cliente do Tenant"
  3. Selecione o tenant criado no passo 4
  4. Preencha nome, e-mail e senha do cliente
  5. Selecione um perfil de permissão inicial (ex: "Editor de Conteúdo")
  6. Salve

Passo 7: Verificar Acessos

Teste os acessos fazendo login com cada tipo de usuário:

UsuárioDeve verNão deve ver
Master Tudo: agências, todos os tenants, fábrica, gestão
Membro da agência Tenants da agência, branding da agência no painel, funcionalidades do perfil atribuído Tenants de outras agências, agências (a menos que tenha perfil platform)
Cliente final Apenas o(s) tenant(s) vinculado(s), funcionalidades do perfil atribuído Outros tenants, gestão, fábrica, agências
Dica: Use o navegador em modo privado (ou outro navegador) para testar logins diferentes simultaneamente sem precisar deslogar.