Quando convidas alguém para o BookHero, a escolha do papel não é cosmética. Determina que páginas a pessoa abre, que botões consegue carregar e que dados a aplicação aceita gravar quando ela mexe. O sistema usa o papel para decidir onde aterras depois de fazer login, e cada server action verifica a permissão antes de tocar na base de dados. Resumindo: o papel é o limite real, não só uma etiqueta.
Este guia mapeia cada um dos 4 papéis (proprietário, gerente, funcionário, limitado) com as permissões exactas que ele tem hoje no BookHero. Vai-te dar o nível certo de detalhe para responderes quando alguém da equipa perguntar 'porque é que não consigo ver isto', e para escolheres bem na hora de convidar pessoas novas.
Os 4 papéis em uma linha
Antes de irmos a fundo em cada um, aqui ficam as 4 caixas em formato curto. Repara que apenas o proprietário é único por negócio; os outros 3 papéis podem ser atribuídos a quantas pessoas quiseres.
- Proprietário: dono do negócio. Único por negócio. Vê tudo, mexe em tudo, incluindo billing, transferência de propriedade e eliminação da conta.
- Gerente: braço direito. Quase tudo do proprietário, excepto billing, segurança crítica e propriedade. Bom para quem ajuda a gerir mas não paga a subscrição.
- Funcionário: o papel padrão de quem atende clientes. Vê o calendário todo, cria marcações, faz checkout, vê as suas próprias comissões e relatório pessoal. Não toca em settings, equipa nem billing.
- Limitado: acesso mínimo. Só vê o próprio calendário, sem editar. Útil para colaboradores que só precisam de consultar o horário do dia.
Proprietário: tudo, incluindo o botão vermelho
O proprietário é a conta que criou o negócio. Há exactamente um por business e essa relação está gravada em businesses.owner_id. Esta posição não se herda: para passar para outra pessoa é preciso uma transferência explícita de propriedade, que é o único caminho para outra pessoa passar a ter este papel.
Gerente: confiança total, sem chegar ao cartão
O gerente foi pensado para a pessoa que gere o dia a dia mas não é dona do negócio: a tua sócia operacional, a coordenadora do salão, a chefe de loja. Tem todos os botões de gestão (equipa, settings, comissões, página pública, relatórios) menos os três que envolvem dinheiro ou propriedade.
Funcionário: o padrão para quem atende clientes
Funcionário é o papel que vais usar mais. Pensa nele como 'a pessoa atrás do balcão ou da cadeira': vê o calendário todo, cria marcações, faz checkout, atende clientes, vê o relatório pessoal e as suas próprias comissões. Não acede a settings da empresa, gestão de equipa, billing nem relatórios agregados.
Limitado: só consulta o próprio horário
Limitado é o papel mais restrito do BookHero. Foi pensado para quem só precisa de saber em que dias e horas trabalha, sem mexer no resto. Pode ser o estagiário, o colaborador esporádico de fim de semana, ou alguém de fora que executa serviços ocasionalmente e quer só ver a agenda dele.
Matriz completa: tudo lado a lado
Esta tabela é a versão definitiva. Cada linha é uma permissão verificada pelo BookHero antes de aceitar uma acção. Um visto significa que o papel tem a permissão; uma cruz significa que o sistema bloqueia (devolve à landing page do papel, sem erro visual).
| Acção / permissão | Proprietário | Gerente | Funcionário | Limitado |
|---|---|---|---|---|
| Ver o próprio calendário | ||||
| Ver o calendário de toda a equipa | ||||
| Criar e cancelar marcações | ||||
| Fazer checkout no balcão | ||||
| Ver e editar clientes | ||||
| Editar definições do negócio | ||||
| Editar a página pública | ||||
| Convidar e remover funcionários | ||||
| Gerir horários da equipa | ||||
| Ver todos os relatórios | ||||
| Ver o relatório pessoal | ||||
| Gerir comissões de toda a equipa | ||||
| Ver as próprias comissões | ||||
| Aceder a Billing e facturas | ||||
| Transferir propriedade do negócio | ||||
| Eliminar o negócio |
Como o BookHero aplica as permissões
Não é por esconder botões no UI. Cada server action e cada página protegida chama uma função de guarda no servidor antes de fazer fosse o que fosse. Se o papel actual não tem a permissão, o pedido é redireccionado para a landing page do papel (calendário para quem o vê, /dashboard/help para quem não vê nada). É o mesmo nível de protecção em todo o lado: UI escondida, rota guardada, validação à entrada da função.
- O sidebar mostra apenas os itens que o papel pode abrir, para evitar dar a entender que existe acesso.
- Cada página protegida chama requirePermission no topo: se não passar, redirecciona sem erro 403.
- Cada server action que muda dados verifica de novo a permissão: o servidor nunca confia no UI.
- Quando mudas o papel de alguém, a mudança é instantânea: no próximo pedido o utilizador já vê (ou deixa de ver) o que o papel novo permite.
Mudar o papel mais tarde
Os papéis não são fixos. Em Funcionários, abre a ficha de qualquer membro e tens lá o seletor de papel. Mudar de 'funcionário' para 'gerente' (ou o contrário) é instantâneo e não obriga a sair e voltar a entrar. O proprietário é a única excepção: para mudar, é preciso o fluxo formal de transferência de propriedade.
Perguntas frequentes sobre papéis
O proprietário pode dar permissões personalizadas a uma pessoa específica (por exemplo, deixar um funcionário ver os relatórios)?
Não. As permissões são por papel, não por pessoa. Não há toggles individuais hoje. Se precisas que alguém veja todos os relatórios, esse alguém tem de ter papel 'gerente'. Esta escolha é deliberada: simplifica a auditoria do tipo 'quem consegue fazer o quê' e evita as armadilhas habituais de matrizes de permissões finas.
Posso ter dois proprietários no mesmo negócio?
Não. O proprietário é único, fica gravado em businesses.owner_id e só muda por transferência explícita. Se queres dar acesso equivalente ao sócio, atribui-lhe 'gerente': pode fazer quase tudo, excepto billing, transferir propriedade e eliminar o negócio. Para passar a propriedade definitivamente (e a responsabilidade pelo billing), inicia a transferência em Segurança.
Um funcionário consegue ver as marcações dos colegas?
Sim. Os funcionários têm 'viewAllCalendars' activo, ou seja, vêem o calendário inteiro com as colunas de toda a equipa. Isto é deliberado: numa loja de balcão, ver o que os colegas têm marcado evita choques (clientes que esperam o colega, por exemplo). Quem só pode ver o próprio calendário é o papel 'limitado'.
E as comissões? O funcionário vê quanto os colegas ganham?
Não. Os funcionários e limitados têm apenas 'viewOwnCommissions': só vêem as suas próprias comissões, sem qualquer detalhe das dos colegas. Os relatórios agregados de comissões (incluindo a quem está atribuído cada serviço) ficam reservados a proprietário e gerente.
Quando promovo alguém de 'funcionário' a 'gerente', preciso de fazer logout/login para a mudança aparecer?
Não. A mudança é instantânea. No próximo pedido feito pelo utilizador, o BookHero recalcula as permissões a partir do papel actual em team_members e o sidebar passa a mostrar as opções novas. Se a pessoa está numa página que entretanto deixou de poder ver (cenário ao despromover), é redireccionada para a landing dela.
Posso remover o papel de proprietário sem transferir para ninguém?
Não. O proprietário só sai do negócio por uma de duas vias: transferir a propriedade para outra conta (que passa a ser proprietária) ou eliminar o negócio. Não há cenário de 'negócio sem dono' porque o billing precisa de uma conta responsável. Para os detalhes, vê o guia /blog/exportar-dados-transferir-e-eliminar-conta.
A seguir no centro de ajuda
Agora que sabes quem pode fazer o quê, estes guias completam o quadro:
- Adicionar funcionários e horários individuais: convidar, atribuir serviços, definir horário.
- Configurar comissões da equipa: regras por serviço ou produto, por funcionário, com prioridades.
- Exportar dados, transferir e eliminar conta: a única forma de mudar de proprietário, e o que acontece quando eliminas.