FJFrigo · Manutenção › 6-Token · 46

Token de liberação

Gera a senha de uso único que outra tela pede para passar por uma trava (recuperação judicial, feriado, limite diário, romaneio…). Cada regra traz a mensagem exata, quando dispara e o confronto com o sistema antigo.

Tabela: token (senha, usado, regra_especifica, descricao, idusuario_incluiu, idusuario_usou) Código: cadastro.token · tela GerarToken Programa antigo: menu46.prg · liberaToken (funcoes.prg)

Bloqueia

Não grava. statuscode 400 com a frase abaixo, que a tela mostra como está.

Confirma

A tela que consome pede o token: statuscode 428, a janela abre o campo e reenvia a gravação com ele.

Aviso

Passa, mas com um comportamento que surpreende quem está conferindo — ou é conferido só na tela.

Genérico ou com regra

Token genérico serve a qualquer trava comum. Token com regra (TOKEN_*) é o único aceito pela trava daquela regra — e não passa nas comuns.

A

Grade

GET /cadastro/token

A grade veio do ceif (o legado só tinha o botão Gerar). Período pela data de criação, padrão os últimos 30 dias; "Somente abertos" esconde os usados. Token ainda não usado sai destacado em laranja.

Bloqueia

A data inicial não pode ser maior que a final.

QuandoPeríodo invertido.

Todos
Aviso

(sem mensagem) — cada um vê só os tokens que gerou

QuandoFora do master, a grade traz só os tokens gerados pelo próprio usuário. O master vê os de todos. A grade não confere grupo: quem tem a opção 46 no menu lista os seus.

Todos
B

Gerar

POST /cadastro/token/gerar

A senha é o algoritmo do legado: dez letras que cifram data e hora do servidor da aplicação, seguidas de AAAAMMDD − HHMMSS. O motivo e a regra específica são opcionais.

Bloqueia

Sem permissão para gerar token - é preciso ser do grupo ADM e ser master ou ter uma regra TOKEN_*.

QuandoAo gerar e ao alterar, quando o usuário não é do grupo ADM, ou é ADM mas não é master nem tem alguma regra TOKEN_* (pelo grupo do ceif, direto ou herdada do grupo). A tela consulta GET /cadastro/token/permissoes e já desabilita Gerar e Alterar.

Sistema antigoFora do ADM a janela não abria (:42); e o botão Gerar só se habilitava para o master (Brasil), uma lista de logins (demais países) ou quem tivesse alguma regra TOKEN% (:84-101). As listas de logins não se portam — vale a regra (usuário, 24/09/2026).

Todos
Bloqueia

Token genérico exige a regra [TOKEN_MASTER] - escolha a regra (a finalidade) do token.

QuandoGerar um token SEM regra (o genérico, que qualquer trava comum aceita), ou tirar a regra de um token ainda não usado, sem ter a regra TOKEN_MASTER (o master passa). A janela já esconde a opção "genérico" e nasce com a primeira regra do usuário.

Sistema antigoSó conhece o token genérico, liberado por master, lista de logins ou qualquer regra TOKEN%. Aqui o genérico passou a exigir a TOKEN_MASTER (usuário, 24/09/2026); quem tem só outras regras TOKEN_* gera tokens daquelas finalidades.

Todos
Bloqueia

Você não tem a regra [TOKEN_HABILITA_BLOQUEIO_CENTRO_CUSTO] - não pode gerar um token para ela.

QuandoGerar (ou alterar) um token marcado com uma regra que o próprio usuário não tem. O nome entre colchetes é a regra escolhida. O combo da tela só oferece as regras TOKEN_* (sistema CEIF) que o usuário tem; a recusa cobre chamada direta.

Sistema antigoNão conhece token com regra: só grava senha e idusuario_incluiu (:164).

Todos
Aviso

(sem mensagem) — a senha gerada não repete um token em aberto

QuandoA senha depende só da data e hora, em segundos. Se já existe token ainda não usado com a mesma senha (dois gerados no mesmo segundo, ou um clique duplo), a senha é gerada de novo com o segundo seguinte — o formato continua o do legado, que só procura a senha na tabela.

Sistema antigoGerava a senha repetida; o primeiro consumo marcava os dois como usados.

AtençãoO desktop gerando no mesmo segundo que o sistema novo ainda pode repetir (as duas pontas só leem a tabela). O consumo marca só um token por vez.

Todos
C

Alterar

PUT /cadastro/token/{id}

Muda só o motivo e a regra — a senha nunca. Recurso do ceif (TokenForm); o legado não altera token.

Bloqueia

Token não encontrado.

QuandoO id não existe.

Todos
Bloqueia

Este token já foi utilizado e não pode ser alterado.

QuandoToken usado é histórico de quem liberou o quê. A tela já abre só para consulta e desabilita Alterar.

Todos
Bloqueia

Só quem gerou o token (ou o master) pode alterá-lo.

QuandoAlterar o token gerado por outra pessoa sem ser master. A regra específica passa ainda pela mesma recusa do Gerar.

Todos
D

Consumo pelas telas

TokenRepository.consumir / consumirComRegra

O token vale uma vez: ao ser aceito vira usado = 'T'. A trava comum (consumir) aceita só token genérico (sem regra_especifica) não usado, marca um só (pelo id) e não distingue senha errada, já usada ou gerada para uma regra. A trava com regra (consumirComRegra) só aceita o token daquela regra e grava também quem usou (idusuario_usou).

Confirma

Título em recuperação judicial - informe um token de liberação para pagar.

QuandoExemplo do 428 da trava comum (baixa, 221/222). As outras frases que pedem token genérico estão na tabela abaixo.

Todos
Bloqueia

Token inválido ou já utilizado.

QuandoA trava comum recebeu uma senha que não existe, já foi usada, ou é de um token gerado com regra (421, 221, 222, 224, 243, 2333). No 2312 e na chave repetida do 2322 o token recusado volta como novo pedido de token (428), sem esta frase.

Sistema antigoliberaToken também não distinguia os dois casos.

Todos
Confirma

Bloquear centro de custo requer token específico - fale com quem tem a regra TOKEN_HABILITA_BLOQUEIO_CENTRO_CUSTO.

QuandoÚnico consumo com regra hoje: marcar ou desmarcar Bloqueado no centro de custo (175), depois de conferida a regra HABILITA_BLOQUEIO_CENTRO_CUSTO. Desmarcar diz "Desbloquear".

Todos
Bloqueia

Token inválido para esta operação - confira se ele foi gerado com a regra TOKEN_HABILITA_BLOQUEIO_CENTRO_CUSTO e ainda não foi usado.

QuandoNo 175, token genérico, de outra regra, errado ou já usado.

AtençãoO token com regra só serve à trava daquela regra: gerado para o centro de custo, ele não libera um pagamento em recuperação judicial (a trava comum o recusa com "Token inválido ou já utilizado.").

Todos
TelaFrase do pedido (428)
421 U.D.F.Alteração momentânea exige um token de liberação.
221 Títulosfrase montada pela trava que disparou (ex.: recuperação judicial, vencimento)
221/222 BaixaTítulo em recuperação judicial - informe um token de liberação para pagar. · … para excluir a baixa. · Não é possível pagar em data de feriado (nome) - informe um token de liberação.
222 Baixa ColetivaPara pagar recuperação judicial: N título(s) selecionado(s) - informe um token de liberação.
224 TransferênciasValor acumulado de los cheques son mayor que lo limite diario ! Vlr. acumulado … Teto: …
243 Saída de AlmoxarifadoVenda em empresa com recuperação judicial - informe um token de liberação.
2322 Compra de CarneChave referenciada já informada em outro lançamento id [ … ] - informe o token de autorização para duplicar o uso da chave.
2312 Compra de Gadopeso/unitário/arroba do romaneio e frete: "<motivo> - informe um token de autorização." · "O unitário do produto …"
2333 VendaSem romaneio, não é permitido - informe um token de autorização sem romaneio.
175 Centro de custotoken com regra — ver acima
E

Permissões

Quem pode passar
CritérioO que libera
grupo ADM + (master ou alguma regra TOKEN_*)gerar e alterar. O master não dispensa o grupo, como no legado
TOKEN_MASTERgerar o token genérico (sem regra); os de uma finalidade exigem a regra dela
master (usuario.master)ver a grade de todos e alterar token de outra pessoa; vale como qualquer regra TOKEN_*
regras TOKEN_* (sistema CEIF)marcar o token com aquela regra. Hoje só TOKEN_HABILITA_BLOQUEIO_CENTRO_CUSTO é conferida por uma tela; as demais TOKEN_* do catálogo ainda são satisfeitas pelo token genérico
F

Como o erro chega na tela

Para o QA reproduzir e reportar

Nesta tela: statuscode 400 com a frase, mostrada na faixa vermelha da janela de token. Nas telas que consomem: statuscode 428 abre o campo de token (no 421 a frase aparece na faixa de erro e o token se digita no próprio formulário); a gravação é reenviada com o token. Erro inesperado traz o código de ocorrência de 8 caracteres — copie-o no chamado.

G

Regras chumbadas no código

Esperadas — não abrir como defeito
LiteralOnde
as duas tabelas de letras (data e hora)algoritmo da senha, igual ao do legado — um token gerado aqui serve no desktop e vice-versa
prefixo TOKEN_quais regras aparecem no combo
30 diasperíodo padrão da grade

As listas de login do legado (hgonzalez, athayde, marcos, pedro…) não foram portadas.

H

Diferenças e decisões pendentes

O que muda em relação ao sistema antigo
PontoSituação
quem geraADM com master ou regra TOKEN_*, como o legado; o genérico exige TOKEN_MASTER; as listas de logins do legado (Brasil :35, demais :88) não foram portadas
token com regrarecurso do ceif; o legado grava sempre genérico
grade, motivo e alteraçãovieram do ceif; o legado só tinha o botão Gerar
token com regra nas travas comunsrecusado (desde 24/09/2026) — o desktop, que lê a mesma tabela sem olhar a regra, ainda o aceitaria
senha repetidao sistema novo gera de novo com o segundo seguinte; o legado repetia

Nenhuma regra bate com essa busca. Tente um trecho menor da mensagem, ou limpe os filtros.