HandyCafe Docs
owner

Funcoes e Permissoes de Operadores de Caixa

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


Tipos de Funcao

O HandyCafe oferece tres tipos de funcoes:

Admin

A funcao Admin concede acesso irrestrito a todos os recursos do sistema. Admins podem gerenciar operadores, visualizar todos os relatorios, modificar configuracoes e realizar qualquer operacao. Esta funcao e destinada a proprietarios e gerentes senior que precisam de controle total.

Sempre existe pelo menos uma conta Admin no sistema. A funcao Admin nao pode ser excluida nem ter suas permissoes reduzidas.

Padrao

A funcao Padrao nao possui permissoes especiais atribuidas. Um operador com a funcao Padrao pode fazer login e realizar operacoes basicas mas nao pode acessar areas restritas como gerenciamento de membros, relatorios ou configuracao de consoles. Use como ponto de partida para novos funcionarios que precisam apenas lidar com tarefas basicas.

Personalizada

Funcoes personalizadas permitem definir exatamente quais permissoes um operador possui. Voce escolhe um nome, define um nivel e marca ou desmarca flags de permissao individuais em seis categorias. Isso oferece controle detalhado sobre o que cada membro da equipe pode acessar.


Categorias de Permissao

O HandyCafe possui 22 flags de permissao individuais organizadas em 6 categorias. Cada flag controla uma acao ou visualizacao especifica dentro do sistema.

1. Autenticacao (1 flag)

Flag Descricao
CLIENT_LOGIN Permite ao operador fazer login em PCs clientes (iniciar sessoes em nome de clientes)

Sem esta permissao, o operador nao pode iniciar ou gerenciar sessoes de clientes.

2. Membros (6 flags)

Flag Descricao
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 informacoes de membros existentes (nome, saldo, etc.)
DISPLAY_EMAIL Visualizar enderecos de email de membros na lista
DISPLAY_GSM Visualizar numeros de telefone de membros na lista

Um operador com apenas VIEW pode navegar pela lista de membros mas nao pode criar, editar ou remover nenhum membro. As flags DISPLAY_EMAIL e DISPLAY_GSM controlam se informacoes sensíveis de contato sao visiveis. Isso e util para conformidade com privacidade quando nem todos os funcionarios devem ver dados pessoais.

3. Consoles (4 flags)

Flag Descricao
VIEW Ver a pagina de consoles e os cartoes de status dos consoles
ADD Registrar novos consoles de jogos no sistema
DELETE Remover consoles do sistema
UPDATE Editar detalhes de consoles (nome, endereco MAC, precos)

4. Logs (4 flags)

Flag Descricao
VIEW Acessar a pagina de logs
DISPLAY_FULL Ver o historico 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 nao DISPLAY_FULL, ele so pode ver entradas de log do dia atual. Isso e util para supervisores de turno que precisam monitorar a atividade atual sem acessar registros historicos.

5. Relatorios (3 flags)

Flag Descricao
PAGE_VIEW Acessar a pagina de relatorios/relatorio de caixa
DISPLAY_FULL Ver o historico completo de relatorios (todas as datas)
DISPLAY_TODAY Ver apenas os dados de relatorios do dia atual

Similar aos logs, as permissoes de relatorios permitem controlar se a equipe pode ver o historico financeiro completo ou apenas os numeros do dia atual. Um operador com PAGE_VIEW e DISPLAY_TODAY pode revisar as transacoes do seu turno mas nao pode acessar dados historicos de receita.

6. Metodos de Pagamento (4 flags)

Flag Descricao
MANAGE Acessar a area de gerenciamento de metodos de pagamento
ADD Criar novos metodos de pagamento (dinheiro, cartao, pagamento movel, etc.)
DELETE Remover metodos de pagamento do sistema
UPDATE Editar detalhes de metodos de pagamento existentes

Resumo

Categoria Flags Total
Autenticacao 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
Relatorios PAGE_VIEW, DISPLAY_FULL, DISPLAY_TODAY 3
Métodos de Pagamento GERENCIAR, ADICIONAR, EXCLUIR, ATUALIZAR 4
Total 22

Como as Permissoes Funcionam

Cada categoria de permissao possui um conjunto de flags de permissao individuais. Cada flag pode ser habilitada ou desabilitada independentemente usando caixas de selecao no editor de funcoes.

A interface oferece caixas de selecao para cada permissao. Basta marcar ou desmarcar as permissoes que deseja conceder ou revogar. O sistema lida com o armazenamento automaticamente -- nao e necessario 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 ate Gestao > Operadores de Caixa no aplicativo servidor.
  2. Clique no botao Adicionar Operador de Caixa.
  3. Informe o nome de usuario do operador. Este sera utilizado para fazer login.
  4. Defina uma senha. Escolha uma senha forte. Esta conta pode ter acesso a dados financeiros e informacoes de clientes.
  5. Selecione uma funcao no menu. Voce pode escolher Admin, Padrao ou qualquer funcao personalizada que tenha criado.
  6. Clique em Salvar para criar a conta.

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


Criando uma Funcao Personalizada

  1. Navegue ate Gestao > Funcoes de Operadores no aplicativo servidor.
  2. Clique no botao Adicionar Funcao.
  3. Informe um nome da funcao (ex.: "Supervisor de Turno", "Operador Junior", "Equipe Noturna").
  4. Defina o nivel da funcao. Niveis mais altos indicam mais autoridade. Isso e usado para ordenacao de exibicao e hierarquia organizacional.
  5. Marque ou desmarque permissoes individuais nas seis categorias. Cada caixa de selecao corresponde a uma das 22 configuracoes de permissao.
  6. Clique em Salvar para criar a funcao.

Apos criada, voce pode atribuir esta funcao a qualquer conta de operador.


Aplicacao no Backend

As permissoes sao aplicadas no lado do servidor, nao apenas ocultas na interface. Mesmo que alguem tente contornar a interface do cliente ou manipular o codigo do frontend, o servidor valida cada solicitacao contra as permissoes da funcao do operador antes de executa-la.

Isso significa:

  • Um operador sem MEMBER_DELETE nao pode excluir um membro, mesmo enviando uma solicitacao direta a API.
  • Um operador sem REPORT_DISPLAY_FULL nao pode recuperar dados historicos de relatorios, independente de como acesse o sistema.
  • Todas as verificacoes de permissao acontecem no backend Rust antes de qualquer operacao no banco de dados.

Seguranca: Limitacao de Taxa

Para proteger contra ataques de forca bruta, o HandyCafe aplica limitacao de taxa de login:

  • 5 tentativas de login mal-sucedidas dentro de uma janela de 10 minutos aciona um bloqueio automatico.
  • O bloqueio dura 15 minutos, durante os quais nenhuma tentativa de login e aceita para aquela conta.
  • Apos o periodo de bloqueio expirar, o operador pode tentar novamente.

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


Gestao de Turnos

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

  • Todas as transacoes (pagamentos de sessao, pagamentos de pedidos, etc.) sao registradas com a identidade do operador.
  • A caixa registradora controla o saldo de abertura e fechamento para cada turno separadamente.
  • Relatorios de turno podem ser gerados por operador, mostrando exatamente quanta receita foi processada durante o turno.
  • Quando um operador faz logout, seu turno e encerrado e um resumo fica disponivel para revisao.

Este rastreamento por operador garante responsabilizacao e facilita a identificacao de discrepancias ao final de cada turno.


Exemplos de Permissao

Cenario 1: Operador Basico Um novo funcionario que precisa apenas iniciar/encerrar sessoes e receber pagamentos. Atribua uma funcao personalizada com apenas CLIENT_LOGIN habilitado. Ele nao pode visualizar membros, relatorios, logs ou consoles.

Cenario 2: Supervisor de Turno Um funcionario de confianca que supervisiona o salao. Atribua uma funcao com CLIENT_LOGIN, MEMBER_VIEW, MEMBER_UPDATE, CONSOLE_VIEW, REPORT_PAGE_VIEW e REPORT_DISPLAY_TODAY. Ele pode gerenciar sessoes, visualizar (mas nao excluir) membros, ver consoles e conferir a receita do dia mas nao pode acessar relatorios historicos completos ou modificar metodos de pagamento.

Cenario 3: Gerente Noturno Um gerente que atua no turno da noite de forma independente. Conceda a maioria das permissoes exceto MEMBER_DELETE, LOG_DELETE e PAYMENT_METHOD_DELETE. Ele pode gerenciar tudo durante seu turno mas nao pode remover permanentemente dados criticos.

Cenario 4: Equipe com Restricao de Privacidade Um operador que nao deve ver dados de contato dos clientes. Crie uma funcao com MEMBER_VIEW habilitado mas DISPLAY_EMAIL e DISPLAY_GSM desabilitados. Ele pode buscar membros pelo nome mas as informacoes pessoais de contato ficam ocultas.