HandyCafe Docs
owner

Funções e Permissões de Operadores de Caixa

O HandyCafe utiliza controle de acesso baseado em funções (RBAC) para gerenciar o que cada membro da equipe pode ver e fazer dentro do sistema. Cada operador de caixa recebe uma função e essa função determina suas permissões exatas em todo o aplicativo.


Tipos de Função

O HandyCafe oferece três tipos de funções:

Admin

A função Admin concede acesso irrestrito a todos os recursos do sistema. Admins podem gerenciar operadores, visualizar todos os relatórios, modificar configurações e realizar qualquer operação. Esta função é destinada a proprietários e gerentes sênior que precisam de controle total.

Sempre existe pelo menos uma conta Admin no sistema. A função Admin não pode ser excluída nem ter suas permissões reduzidas.

Padrão

A função Padrão não possui permissões especiais atribuídas. Um operador com a função Padrão pode fazer login e realizar operações básicas mas não pode acessar áreas restritas como gerenciamento de membros, relatórios ou configuração de consoles. Use como ponto de partida para novos funcionários que precisam apenas lidar com tarefas básicas.

Personalizada

Funções personalizadas permitem definir exatamente quais permissões um operador possui. Você escolhe um nome, define um nível e marca ou desmarca flags de permissão individuais em seis categorias. Isso oferece controle detalhado sobre o que cada membro da equipe pode acessar.


Categorias de Permissão

O HandyCafe possui 22 flags de permissão individuais organizadas em 6 categorias. Cada flag controla uma ação ou visualização específica dentro do sistema.

1. Autenticação (1 flag)

Flag Descrição
CLIENT_LOGIN Permite ao operador fazer login em PCs clientes (iniciar sessões em nome de clientes)

Sem esta permissão, o operador não pode iniciar ou gerenciar sessões de clientes.

2. Membros (6 flags)

Flag Descrição
VIEW Ver a lista de membros e detalhes dos membros
ADD Criar novas contas de membros
DELETE Remover contas de membros do sistema
UPDATE Editar informações de membros existentes (nome, saldo, etc.)
DISPLAY_EMAIL Visualizar endereços de email de membros na lista
DISPLAY_GSM Visualizar números de telefone de membros na lista

Um operador com apenas VIEW pode navegar pela lista de membros mas não pode criar, editar ou remover nenhum membro. As flags DISPLAY_EMAIL e DISPLAY_GSM controlam se informações sensíveis de contato são visíveis. Isso é útil para conformidade com privacidade quando nem todos os funcionários devem ver dados pessoais.

3. Consoles (4 flags)

Flag Descrição
VIEW Ver a página de consoles e os cartões de status dos consoles
ADD Registrar novos consoles de jogos no sistema
DELETE Remover consoles do sistema
UPDATE Editar detalhes de consoles (nome, endereço MAC, preços)

4. Logs (4 flags)

Flag Descrição
VIEW Acessar a página de logs
DISPLAY_FULL Ver o histórico completo de logs (todas as datas)
DISPLAY_TODAY Ver apenas as entradas de log do dia atual
DELETE Excluir entradas de log

Se um operador possui VIEW e DISPLAY_TODAY mas não DISPLAY_FULL, ele só pode ver entradas de log do dia atual. Isso é útil para supervisores de turno que precisam monitorar a atividade atual sem acessar registros históricos.

5. Relatórios (3 flags)

Flag Descrição
PAGE_VIEW Acessar a página de relatórios/relatório de caixa
DISPLAY_FULL Ver o histórico completo de relatórios (todas as datas)
DISPLAY_TODAY Ver apenas os dados de relatórios do dia atual

Similar aos logs, as permissões de relatórios permitem controlar se a equipe pode ver o histórico financeiro completo ou apenas os números do dia atual. Um operador com PAGE_VIEW e DISPLAY_TODAY pode revisar as transações do seu turno mas não pode acessar dados históricos de receita.

6. Métodos de Pagamento (4 flags)

Flag Descrição
MANAGE Acessar a área de gerenciamento de métodos de pagamento
ADD Criar novos métodos de pagamento (dinheiro, cartão, pagamento móvel, etc.)
DELETE Remover métodos de pagamento do sistema
UPDATE Editar detalhes de métodos de pagamento existentes

Resumo

Categoria Flags Total
Autenticação CLIENT_LOGIN 1
Membros VER, ADICIONAR, EXCLUIR, ATUALIZAR, DISPLAY_EMAIL, DISPLAY_GSM 6
Consolas VER, ADICIONAR, EXCLUIR, ATUALIZAR 4
Registros VER, DISPLAY_FULL, DISPLAY_TODAY, EXCLUIR 4
Relatórios PAGE_VIEW, DISPLAY_FULL, DISPLAY_TODAY 3
Métodos de Pagamento GERENCIAR, ADICIONAR, EXCLUIR, ATUALIZAR 4
Total 22

Como as Permissões Funcionam

Cada categoria de permissão possui um conjunto de flags de permissão individuais. Cada flag pode ser habilitada ou desabilitada independentemente usando caixas de seleção no editor de funções.

A interface oferece caixas de seleção para cada permissão. Basta marcar ou desmarcar as permissões que deseja conceder ou revogar. O sistema lida com o armazenamento automaticamente -- não é necessário calcular nenhum valor manualmente.

Por exemplo, na categoria Membros, você pode habilitar ou desabilitar independentemente: VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL e DISPLAY_GSM. Um operador com apenas VIEW e UPDATE marcados pode ver e editar membros, mas não pode adicioná-los ou excluí-los.


Criando uma Conta de Operador de Caixa

  1. Navegue até Gestão > Operadores de Caixa no aplicativo servidor.
  2. Clique no botão Adicionar Operador de Caixa.
  3. Informe o nome de usuário do operador. Este será utilizado para fazer login.
  4. Defina uma senha. Escolha uma senha forte. Esta conta pode ter acesso a dados financeiros e informações de clientes.
  5. Selecione uma função no menu. Você pode escolher Admin, Padrão ou qualquer função personalizada que tenha criado.
  6. Clique em Salvar para criar a conta.

O novo operador já pode fazer login no servidor HandyCafe usando suas credenciais.


Criando uma Função Personalizada

  1. Navegue até Gestão > Funções de Operadores no aplicativo servidor.
  2. Clique no botão Adicionar Função.
  3. Informe um nome da função (ex.: "Supervisor de Turno", "Operador Júnior", "Equipe Noturna").
  4. Defina o nível da função. Níveis mais altos indicam mais autoridade. Isso é usado para ordenação de exibição e hierarquia organizacional.
  5. Marque ou desmarque permissões individuais nas seis categorias. Cada caixa de seleção corresponde a uma das 22 configurações de permissão.
  6. Clique em Salvar para criar a função.

Após criada, você pode atribuir esta função a qualquer conta de operador.


Aplicação no Backend

As permissões são aplicadas no lado do servidor, não apenas ocultas na interface. Mesmo que alguém tente contornar a interface do cliente ou manipular o código do frontend, o servidor valida cada solicitação contra as permissões da função do operador antes de executá-la.

Isso significa:

  • Um operador sem MEMBER_DELETE não pode excluir um membro, mesmo enviando uma solicitação direta à API.
  • Um operador sem REPORT_DISPLAY_FULL não pode recuperar dados históricos de relatórios, independente de como acesse o sistema.
  • Todas as verificações de permissão acontecem no backend Rust antes de qualquer operação no banco de dados.

Segurança: Limitação de Taxa

Para proteger contra ataques de força bruta, o HandyCafe aplica limitação de taxa de login:

  • 5 tentativas de login mal-sucedidas dentro de uma janela de 10 minutos aciona um bloqueio automático.
  • O bloqueio dura 15 minutos, durante os quais nenhuma tentativa de login é aceita para aquela conta.
  • Após o período de bloqueio expirar, o operador pode tentar novamente.

Isso se aplica tanto à tela de login do servidor quanto ao login do operador nos PCs clientes.


Gestão de Turnos

A atividade de cada operador de caixa é rastreada individualmente durante seu turno:

  • Todas as transações (pagamentos de sessão, pagamentos de pedidos, etc.) são registradas com a identidade do operador.
  • A caixa registradora controla o saldo de abertura e fechamento para cada turno separadamente.
  • Relatórios de turno podem ser gerados por operador, mostrando exatamente quanta receita foi processada durante o turno.
  • Quando um operador faz logout, seu turno é encerrado e um resumo fica disponível para revisão.

Este rastreamento por operador garante responsabilização e facilita a identificação de discrepâncias ao final de cada turno.


Exemplos de Permissão

Cenário 1: Operador Básico Um novo funcionário que precisa apenas iniciar/encerrar sessões e receber pagamentos. Atribua uma função personalizada com apenas CLIENT_LOGIN habilitado. Ele não pode visualizar membros, relatórios, logs ou consoles.

Cenário 2: Supervisor de Turno Um funcionário de confiança que supervisiona o salão. Atribua uma função com CLIENT_LOGIN, MEMBER_VIEW, MEMBER_UPDATE, CONSOLE_VIEW, REPORT_PAGE_VIEW e REPORT_DISPLAY_TODAY. Ele pode gerenciar sessões, visualizar (mas não excluir) membros, ver consoles e conferir a receita do dia mas não pode acessar relatórios históricos completos ou modificar métodos de pagamento.

Cenário 3: Gerente Noturno Um gerente que atua no turno da noite de forma independente. Conceda a maioria das permissões exceto MEMBER_DELETE, LOG_DELETE e PAYMENT_METHOD_DELETE. Ele pode gerenciar tudo durante seu turno mas não pode remover permanentemente dados críticos.

Cenário 4: Equipe com Restrição de Privacidade Um operador que não deve ver dados de contato dos clientes. Crie uma função com MEMBER_VIEW habilitado mas DISPLAY_EMAIL e DISPLAY_GSM desabilitados. Ele pode buscar membros pelo nome mas as informações pessoais de contato ficam ocultas.