Auth
8 funções do TermoTracing para auth.
// npm install termo_core --save-exact
import * as tracing from "termo_core/tracing";
// ou: import { tracing } from "termo_core";| Função | Rota | O que faz |
|---|---|---|
buscar_paginador_auth | GET /auth | Lista os acessos com paginação |
criar_auth | POST /auth | Cria um acesso |
buscar_acesso_auth | GET /auth/acesso | Busca o acesso de quem está logado |
buscar_auto_complete_auth | GET /auth/autocomplete | Lista básica de acessos para seleção |
buscar_pelo_filtro_auth | GET /auth/filtro | Busca acessos por filtro |
buscar_pelo_id_auth | GET /auth/{id} | Busca um acesso pelo id |
atualizar_pelo_id_auth | PATCH /auth/{id} | Atualiza um acesso pelo id |
deletar_pelo_id_auth | DELETE /auth/{id} | Exclui um acesso pelo id |
buscar_paginador_auth
GET/auth Exige credencial
Lista os acessos com paginação
Exige qualquer permissão da área colaboradores (qualquer ação liberada na área já libera a leitura). Ordena por perfil e depois por e-mail. Acessos excluídos não aparecem. pagina começa em 1 (padrão 1; valores menores viram 1). A página tem sempre 50 itens: tamanho é aceito, mas ignorado. total conta todos os registros não excluídos.
function buscar_paginador_auth(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarPaginadorAuth = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaAuth>import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_auth } from "termo_core/tracing";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_paginador_auth(credencial_de_acesso, { pagina: 1 });Argumentos
Nome
Tipo
Retorno: Promise<tipos.PaginaAuth> · Rust: Result<tipos::PaginaAuth, ErroAoChamarServico> · veja PaginaAuth.
criar_auth
POST/auth Exige credencial
Cria um acesso
Exige a permissão criar da área colaboradores. Cadastra quem pode entrar no TermoTracing. email é obrigatório, com até 160 caracteres, e é gravado em minúsculas, sem espaços nas pontas; perfil é colaborador ou cliente. O acesso nasce ativo e sem nenhuma permissão. Para a pessoa conseguir entrar, o e-mail precisa ser @termotubos.com.br e existir no TermoAuth com o mesmo endereço.
function criar_auth(
credencial_de_acesso: CredencialDeAcesso,
corpo_da_requisicao: tipos.AuthCriar,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Auth>import { CredencialDeAcesso } from "termo_core";
import { criar_auth } from "termo_core/tracing";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await criar_auth(credencial_de_acesso, corpo_da_requisicao);Argumentos
Nome
Tipo
Retorno: Promise<tipos.Auth> · Rust: Result<tipos::Auth, ErroAoChamarServico> · veja Auth.
buscar_acesso_auth
GET/auth/acesso Exige credencial
Busca o acesso de quem está logado
Livre para qualquer usuário autenticado com acesso ativo, mesmo sem nenhuma permissão liberada. Devolve o acesso de quem chamou (id, e-mail, nome, perfil e se é master do TermoAuth) e as permissões por área (rastreamento, aplicativos e colaboradores), cada uma com ler, criar, editar e deletar. Um master do TermoAuth recebe todas as permissões e, no primeiro pedido, ganha o acesso e o colaborador automaticamente. nome vem do TermoAuth e, se estiver vazio, repete o e-mail. É a chamada que o painel faz antes de mostrar qualquer tela.
function buscar_acesso_auth(
credencial_de_acesso: CredencialDeAcesso,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.AcessoAtual>import { CredencialDeAcesso } from "termo_core";
import { buscar_acesso_auth } from "termo_core/tracing";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_acesso_auth(credencial_de_acesso);Argumentos
Nome
Tipo
Retorno: Promise<tipos.AcessoAtual> · Rust: Result<tipos::AcessoAtual, ErroAoChamarServico> · veja AcessoAtual.
buscar_auto_complete_auth
GET/auth/autocomplete Exige credencial
Lista básica de acessos para seleção
Exige qualquer permissão da área colaboradores (qualquer ação liberada na área já libera a leitura). Devolve só id, e-mail e perfil, em ordem alfabética de e-mail, para escolher um acesso. busca procura por trecho do e-mail, sem diferenciar maiúsculas; perfil compara o valor exato. pagina começa em 1 (padrão 1) e tamanho tem padrão 10, sem máximo; valores menores que 1 viram 1. total conta os registros que casam com a busca.
function buscar_auto_complete_auth(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarAutoCompleteAuth = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaAuthAutoComplete>import { CredencialDeAcesso } from "termo_core";
import { buscar_auto_complete_auth } from "termo_core/tracing";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_auto_complete_auth(credencial_de_acesso, { busca: "..." });Argumentos
Nome
Tipo
Retorno: Promise<tipos.PaginaAuthAutoComplete> · Rust: Result<tipos::PaginaAuthAutoComplete, ErroAoChamarServico> · veja PaginaAuthAutoComplete.
buscar_pelo_filtro_auth
GET/auth/filtro Exige credencial
Busca acessos por filtro
Exige qualquer permissão da área colaboradores (qualquer ação liberada na área já libera a leitura). Devolve todos os acessos que casam com o filtro, sem paginação, em ordem alfabética de e-mail. email procura por trecho, sem diferenciar maiúsculas; perfil compara o valor exato (colaborador ou cliente); ativo filtra pela situação. Sem filtro, devolve todos. Acessos excluídos não aparecem.
function buscar_pelo_filtro_auth(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarPeloFiltroAuth = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.Auth>>import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_filtro_auth } from "termo_core/tracing";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_filtro_auth(credencial_de_acesso, { email: "..." });Argumentos
Nome
Tipo
Retorno: Promise<Array<tipos.Auth>> · Rust: Result<Vec<tipos::Auth>, ErroAoChamarServico>
buscar_pelo_id_auth
GET/auth/{id} Exige credencial
Busca um acesso pelo id
Exige qualquer permissão da área colaboradores (qualquer ação liberada na área já libera a leitura). Acesso excluído responde 404. vinculado diz se há um colaborador ligado ao acesso, e nome é o nome desse colaborador. master diz se a pessoa é master do TermoAuth.
function buscar_pelo_id_auth(
credencial_de_acesso: CredencialDeAcesso,
id: string,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Auth>import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_id_auth } from "termo_core/tracing";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_id_auth(credencial_de_acesso, id);Argumentos
Nome
Tipo
Retorno: Promise<tipos.Auth> · Rust: Result<tipos::Auth, ErroAoChamarServico> · veja Auth.
atualizar_pelo_id_auth
PATCH/auth/{id} Exige credencial
Atualiza um acesso pelo id
Exige a permissão editar da área colaboradores. Atualização parcial: só os campos enviados mudam. email (até 160 caracteres, gravado em minúsculas) e ativo (acesso inativo é barrado em todas as rotas). O perfil não muda. O acesso de um master do TermoAuth não pode ser alterado.
function atualizar_pelo_id_auth(
credencial_de_acesso: CredencialDeAcesso,
id: string,
corpo_da_requisicao: tipos.AuthAtualizar,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Auth>import { CredencialDeAcesso } from "termo_core";
import { atualizar_pelo_id_auth } from "termo_core/tracing";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await atualizar_pelo_id_auth(credencial_de_acesso, id, corpo_da_requisicao);Argumentos
Nome
Tipo
Retorno: Promise<tipos.Auth> · Rust: Result<tipos::Auth, ErroAoChamarServico> · veja Auth.
deletar_pelo_id_auth
DELETE/auth/{id} Exige credencial
Exclui um acesso pelo id
Exige a permissão deletar da área colaboradores. A exclusão é lógica: o acesso some das consultas e a pessoa deixa de entrar, mas o registro fica guardado e não há como restaurar. Acesso com colaborador vinculado não pode ser excluído por aqui. O acesso de um master do TermoAuth não pode ser excluído.
function deletar_pelo_id_auth(
credencial_de_acesso: CredencialDeAcesso,
id: string,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<void>import { CredencialDeAcesso } from "termo_core";
import { deletar_pelo_id_auth } from "termo_core/tracing";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
await deletar_pelo_id_auth(credencial_de_acesso, id);Argumentos
Nome
Tipo
Retorno: Promise<void> · Rust: Result<(), ErroAoChamarServico> · sem corpo na resposta.
Tipos
Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.
AcessoAtual
import type { AcessoAtual } from "termo_core/tracing";
export interface AcessoAtual {
email: string;
id: string;
master: boolean;
nome: string;
perfil: string;
perfil_acesso?: string | null;
permissoes: Permissoes;
}Acoes
import type { Acoes } from "termo_core/tracing";
export interface Acoes {
criar?: boolean;
deletar?: boolean;
editar?: boolean;
ler?: boolean;
}Auth
import type { Auth } from "termo_core/tracing";
export interface Auth {
ativo: boolean;
atualizado_em: string;
bloqueado_ate?: string | null;
criado_em: string;
email: string;
id: string;
master: boolean;
nome?: string | null;
perfil: string;
termoauth_id?: string | null;
ultimo_login_em?: string | null;
vinculado: boolean;
}AuthAtualizar
import type { AuthAtualizar } from "termo_core/tracing";
export interface AuthAtualizar {
ativo?: boolean | null;
email?: string | null;
}AuthCriar
import type { AuthCriar } from "termo_core/tracing";
export interface AuthCriar {
email: string;
perfil: string;
}PaginaAuth
import type { PaginaAuth } from "termo_core/tracing";
export interface PaginaAuth {
itens: Array<PaginaAuthItensItem>;
pagina: number;
tamanho: number;
total: number;
}PaginaAuthAutoComplete
import type { PaginaAuthAutoComplete } from "termo_core/tracing";
export interface PaginaAuthAutoComplete {
itens: Array<PaginaAuthAutoCompleteItensItem>;
pagina: number;
tamanho: number;
total: number;
}PaginaAuthAutoCompleteItensItem
import type { PaginaAuthAutoCompleteItensItem } from "termo_core/tracing";
export interface PaginaAuthAutoCompleteItensItem {
email: string;
id: string;
perfil: string;
}PaginaAuthItensItem
import type { PaginaAuthItensItem } from "termo_core/tracing";
export interface PaginaAuthItensItem {
ativo: boolean;
atualizado_em: string;
bloqueado_ate?: string | null;
criado_em: string;
email: string;
id: string;
master: boolean;
nome?: string | null;
perfil: string;
termoauth_id?: string | null;
ultimo_login_em?: string | null;
vinculado: boolean;
}Permissoes
import type { Permissoes } from "termo_core/tracing";
export interface Permissoes {
aplicativos?: Acoes;
colaboradores?: Acoes;
rastreamento?: Acoes;
}