Usuários e permissões
Menu: Administração → Usuários
O que é um usuário, aqui
Cada pessoa que toca o sistema — vendedor no balcão, quem fecha o caixa, quem cuida do estoque, quem olha os números — precisa do próprio login. Não é burocracia: o sistema usa esse login pra saber quem fez cada venda, cada desconto, cada cancelamento e cada ajuste de estoque. Ver Segurança básica sobre por que login compartilhado destrói esse rastro.
Um usuário, na prática, é a combinação de três coisas:
- Identidade — nome, login, e-mail, senha; quem é essa pessoa.
- Papel (
role) — um atalho de cadastro que já vem com um conjunto de permissões pronto (ver Papéis); não é uma trava por si só. - Permissões granulares — a lista real de "pode/não pode" que decide o que a tela mostra e o que a API aceita (ver Permissões). O papel só preenche essa lista quando o usuário é criado ou trocado de papel — depois disso, dá pra ajustar cada permissão individualmente, sem mudar o papel.
Cadastro de usuário
| Campo | Pra que serve |
|---|---|
| Nome | Nome de exibição — aparece nos relatórios e no histórico de quem fez o quê |
| Usuário | Login — único no sistema, é o que a pessoa digita pra entrar |
| Único também; hoje é só identificação, não é usado pra recuperação de senha automática | |
| Senha | Mínimo 6 caracteres |
| Loja | Loja padrão do usuário — pré-seleciona qual loja o PDV/estoque abre pra essa pessoa |
| Papel | Ver Papéis — define o conjunto inicial de permissões |
| Código de acesso | Ver Código de acesso — PIN de 6 dígitos, alternativa ao usuário/senha |
| Ativo | Usuário inativo não consegue mais entrar no sistema, mas continua existindo no banco — o histórico de vendas/ajustes dele fica intacto |
Alterar senha de um usuário existente é uma ação separada, feita à parte do resto do cadastro (nova senha com ao menos 6 caracteres).
Código de acesso
Todo usuário tem, além de usuário/senha, um código de acesso: um PIN numérico de 6 dígitos, único no sistema, que loga sem digitar usuário nem senha — só o código. Serve pra entrar rápido no dia a dia (balcão, troca de operador) sem precisar do formulário completo.
- Gerado automaticamente ao criar o usuário — a tela já sugere um código livre. Um administrador (permissão Configuração → Usuários) pode digitar outro código à mão, ou clicar em Gerar novo código pra sortear outro aleatório; o sistema recusa salvar se o código já pertencer a outra pessoa.
- Aparece em texto simples na ficha do usuário (diferente da senha, que nunca é reexibida) — é o mesmo código que a pessoa vai digitar pra entrar, então precisa poder ser consultado e, se for o caso, anotado/impresso. Não é um segredo de uso único: continua valendo até alguém trocar.
Onde o código de acesso é aceito — hoje o modo padrão em todo lugar que pede login, com usuário/senha disponível como alternativa (botão "Entrar com usuário e senha"):
- Ao abrir o aplicativo, na tela de login.
- No atalho F2 (trocar de usuário sem fechar o app, ver Atalhos de teclado).
- No PDV, pra destravar a tela quando Preferências → Segurança → Exigir código após venda está ligado — ver PDV#trava-pós-venda. Aqui não tem alternativa de usuário/senha: é só código.
- Na versão mobile compacta (Acesso pela rede), a tela de login também abre pedindo o código por padrão — mesmo mecanismo do desktop, mesmo código por usuário.
As mesmas regras de acesso do login normal continuam valendo com código: usuário inativo ou fora do turno cadastrado é recusado igual ao login por usuário/senha (ver Turnos de trabalho).
Papéis
Os papéis seguem uma hierarquia de presets — cada nível acima parte de um conjunto de permissões que enxerga mais que o de baixo:
(Vendedor = Caixa = Estoquista = Mecânico, cada um com sua permissão específica)
< Financeiro
< Administrador
< Desenvolvedor (só conta de suporte, não aparece pra escolher aqui)
- Vendedor, Caixa, Estoquista e Mecânico ficam no mesmo nível — cada um com seu próprio conjunto de permissões, sem um mandar no outro. Vendedor abre o PDV mas não vê custo nem mexe no caixa; Caixa abre o PDV e opera o caixa, com desconto liberado; Estoquista não abre o PDV, mas tem controle total do estoque (inclusive ver custo, já que precisa avaliar valor de inventário); Mecânico não abre o PDV nem vê relatório, mas edita clientes/ordens (o suficiente pra rodar a Oficina) e vê custo dos produtos que usa no serviço.
- Mecânico é também o único papel que enxerga o menu Oficina na versão instalada (produção) — ver Oficina.
- Financeiro enxerga custo/margem, relatórios completos (com exportação) e crédito de cliente (ver e conceder), mas não abre o PDV nem mexe em configuração — é o papel de quem analisa números, não de quem vende.
- Administrador é o topo disponível pra qualquer conta cadastrada por aqui — vê e configura tudo, inclusive Usuários e o editor de Layout.
- Desenvolvedor existe no banco (é a conta de suporte técnico) mas não aparece na lista de papéis desta tela — nenhum administrador consegue criar ou promover alguém pra esse papel por aqui, mesmo tentando forçar a requisição por fora da tela. É reservado pra quem dá suporte remoto.
- A conta de suporte não aparece na lista de usuários de quem não é suporte, e não pode ser editada, desativada, ter a senha trocada nem as permissões mudadas pelo admin da loja.
Importante sobre essa hierarquia: ela é só um atalho de cadastro — o sistema não tem herança automática de permissão no código. Cada papel tem seu próprio conjunto fixo de permissões marcadas (o "preset"); o papel de cima não "herda" o de baixo por regra estrutural, alguém só escreveu os presets de forma consistente entre si. Na prática isso quer dizer: o papel é o ponto de partida ao criar o usuário; o que realmente manda, depois disso, são as permissões marcadas individualmente — dá pra ter, por exemplo, um Vendedor com permissão extra de Dar desconto ligada à mão, mesmo isso não sendo o padrão do papel.
Permissões
Cada usuário tem permissões marcadas uma a uma, em sete grupos — é essa lista, não o nome do papel, que a tela e a API checam a cada ação:
PDV
| Permissão | Efeito |
|---|---|
| Abrir PDV | Acessa a frente de caixa |
| Cancelar item | Remove linha do carrinho (F8) |
| Cancelar venda | Descarta a venda inteira (F9) |
| Dar desconto | Libera desconto no item e desconto geral da venda |
| Ver custo | Vê preço de custo e margem nas telas — sem isso, o usuário só vê preço de venda |
| Editar histórico de vendas | Vê o botão Editar venda no Histórico de vendas e pode diminuir o valor de uma venda concluída (preço do item ou descontos) — nunca aumentar. Ligada para administradores |
Além dessas, quem tem Configuração → Usuários vê dois campos extras dentro do grupo PDV, ao editar a permissão de outra pessoa:
- Limite máx. de desconto (%) — teto de desconto que essa pessoa pode dar, de 0 a 100. Vazio = sem limite (o padrão de todo papel hoje é "sem limite" — esse campo existe pra apertar caso a caso, não vem restrito por papel).
- Pode vender abaixo do preço de custo — se desmarcado, o PDV recusa fechar uma venda cujo preço fique menor que o custo do produto pra essa pessoa. Vem marcado (permitido) por padrão em todos os papéis.
Estoque
| Permissão | Efeito |
|---|---|
| Visualizar | Vê o módulo de estoque |
| Editar produtos | Cria e altera produtos |
| Ajustar estoque | Lança movimentações manuais (entrada/saída avulsa) |
| Importar catálogo | Importa listas de produtos em lote |
Clientes
| Permissão | Efeito |
|---|---|
| Visualizar | Vê a lista de clientes |
| Editar | Cria e altera cadastro de clientes |
| Ver crédito | Vê histórico de compras e a aba Notas/fiado do cliente — sem essa permissão, o cadastro básico aparece mas o financeiro dele fica escondido |
| Conceder crédito | Define/altera o limite de crédito do cliente |
Fornecedores
Visualizar, Editar, Importar catálogo — mesmo padrão de Estoque, aplicado ao cadastro de fornecedores.
Relatórios
Visualizar, Exportar — exportar é uma permissão separada de visualizar; dá pra deixar alguém ver os números na tela sem poder tirar uma planilha deles.
Configuração
| Permissão | Efeito |
|---|---|
| Layout | Usa o editor de layout |
| Sistema | Configurações da empresa, log, impressora, rede — o nível mais alto de configuração que uma conta comum pode ter |
| Usuários | Cria usuários, altera permissões de outros usuários (inclusive o campo de limite de desconto acima) |
Caixa
Visualizar, Registrar (abrir/fechar turno de caixa e lançar sangria/suprimento).
Como as permissões aparecem na prática
- Menus somem. Sem permissão de financeiro, o menu Financeiro não é exibido — não é erro, é escopo: a pessoa não vê a opção porque não tem acesso a ela, não porque algo quebrou.
- Botões recusam. Ações protegidas informam "Sem permissão para…" em vez de falhar silenciosamente ou mostrar erro técnico cru — ver a regra de tratamento de erro global do sistema, a mesma ideia se aplica aqui.
- Colunas somem. Sem Ver custo, o usuário enxerga preço de venda mas não custo nem margem, em nenhuma tela que mostre essa informação junto.
Presets por papel, exatamente como o sistema aplica hoje
| Papel | PDV | Estoque | Clientes | Relatórios | Configuração | Caixa |
|---|---|---|---|---|---|---|
| Vendedor | Abre, cancela item, sem custo | Só visualizar | Visualizar apenas | Só visualizar | Nenhuma | Nenhuma |
| Caixa | Abre, cancela item e venda, dá desconto, sem custo | Só visualizar | Visualizar apenas | Só visualizar | Nenhuma | Visualizar e registrar |
| Estoquista | Não abre PDV, mas vê custo | Completo (editar, ajustar, importar) | Visualizar apenas | Só visualizar | Nenhuma | Nenhuma |
| Mecânico | Não abre PDV, mas vê custo | Só visualizar | Visualizar e editar | Nenhuma | Nenhuma | Nenhuma |
| Financeiro | Não abre PDV | Só visualizar | Ver e conceder crédito | Visualizar e exportar | Nenhuma | Visualizar |
| Administrador | Tudo | Tudo | Tudo | Tudo | Tudo (Layout, Sistema, Usuários) | Tudo |
| Desenvolvedor | Tudo | Tudo | Tudo | Tudo | Tudo | Tudo — mas não aparece pra escolher na tela |
Essa tabela é o ponto de partida de cada papel ao criar o usuário, não uma trava permanente — permissões individuais continuam editáveis depois.
Trocar o papel de um usuário existente substitui o bag de permissões inteiro pelo preset novo — com duas exceções: Limite máx. de desconto e Pode vender abaixo do custo (os dois campos de ajuste fino descritos em PDV acima) sobrevivem à troca, porque são configuração por pessoa, não algo que o papel deva decidir. Ou seja: se você já tinha apertado o limite de desconto de alguém pra 5% e depois muda o papel dela de Vendedor pra Caixa, o limite de 5% continua valendo — só o resto das permissões volta ao padrão do papel novo.
Turnos de trabalho
Cada usuário pode ter turnos de acesso cadastrados: dias da semana + hora de início e hora de fim — controla em que janela de tempo essa pessoa consegue entrar no sistema (fora do turno, o login é recusado).
- Sem nenhum turno cadastrado = acesso irrestrito, qualquer dia e horário — turnos são opcionais, não um requisito de cadastro.
- É preciso selecionar ao menos um dia da semana pra salvar um turno.
- A hora de início precisa ser anterior à hora de fim (não dá pra cadastrar um turno que atravesse a meia-noite, ex.: 22:00–06:00, do jeito que a tela valida hoje).
- Um usuário pode ter vários turnos — por exemplo, um pra dias de semana e outro, diferente, pro sábado.
Segurança básica
- Troque a senha do
adminno primeiro acesso → Primeiros passos. - Um usuário por pessoa. Login compartilhado inutiliza o histórico: sem ele, não há como saber quem deu o desconto, quem cancelou a venda ou quem ajustou o estoque — toda a rastreabilidade de "quem fez o quê" descrita em O que é um usuário, aqui depende de cada pessoa ter o próprio login.
- Ao desligar alguém, inative o usuário em vez de excluir — diferente de Clientes, Usuários têm esse estado "ativo/inativo" dedicado (campo Ativo no cadastro): inativar bloqueia o login na hora, sem apagar nada, e o histórico das vendas/ajustes que essa pessoa fez continua íntegro e ligado ao nome dela nos relatórios.