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
- Navegue ate Gestao > Operadores de Caixa no aplicativo servidor.
- Clique no botao Adicionar Operador de Caixa.
- Informe o nome de usuario do operador. Este sera utilizado para fazer login.
- Defina uma senha. Escolha uma senha forte. Esta conta pode ter acesso a dados financeiros e informacoes de clientes.
- Selecione uma funcao no menu. Voce pode escolher Admin, Padrao ou qualquer funcao personalizada que tenha criado.
- Clique em Salvar para criar a conta.
O novo operador ja pode fazer login no servidor HandyCafe usando suas credenciais.
Criando uma Funcao Personalizada
- Navegue ate Gestao > Funcoes de Operadores no aplicativo servidor.
- Clique no botao Adicionar Funcao.
- Informe um nome da funcao (ex.: "Supervisor de Turno", "Operador Junior", "Equipe Noturna").
- Defina o nivel da funcao. Niveis mais altos indicam mais autoridade. Isso e usado para ordenacao de exibicao e hierarquia organizacional.
- Marque ou desmarque permissoes individuais nas seis categorias. Cada caixa de selecao corresponde a uma das 22 configuracoes de permissao.
- 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.