Auth

1 função do TermoLeads para auth.

// npm install termo_core --save-exact
import * as leads from "termo_core/leads";
// ou: import { leads } from "termo_core";
FunçãoRotaO que faz
eu_authGET /api/auth/euDevolve o usuário logado e as permissões dele

eu_auth

GET/api/auth/eu Exige credencial

Devolve o usuário logado e as permissões dele

Exige login: token válido do TermoAuth, e-mail @termotubos.com.br e acesso cadastrado e ativo no TermoLeads (o master do TermoAuth ganha o acesso e o colaborador no primeiro pedido; os demais chegam pela sincronização que um master dispara ao listar os colaboradores). Não exige nenhuma área. Devolve id (o id no TermoAuth), nome, email, master, o nome do perfil_acesso e as permissoes de cada área, que o frontend usa para montar o menu.

function eu_auth(
  credencial_de_acesso: CredencialDeAcesso,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.AcessoAtual>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { eu_auth } from "termo_core/leads";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await eu_auth(credencial_de_acesso);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.AcessoAtual> · Rust: Result<tipos::AcessoAtual, ErroAoChamarServico> · veja AcessoAtual.

Tipos

Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.

AcessoAtual

import type { AcessoAtual } from "termo_core/leads";

export interface AcessoAtual {
  /**
   * E-mail do usuário, sempre `@termotubos.com.br`
   */
  email: string;
  /**
   * Id do usuário no TermoAuth (o `sub` do token)
   */
  id: string;
  /**
   * `true` quando o token traz `isMaster`: tem todas as permissões e libera a importação da base
   */
  master: boolean;
  /**
   * Nome do usuário (o e-mail quando o token não traz nome)
   */
  nome: string;
  /**
   * Nome do perfil de acesso da pessoa; `null` quando não tem perfil
   */
  perfil_acesso?: string | null;
  /**
   * Ações liberadas em cada área (todas para o master)
   */
  permissoes: Permissoes;
}

Acoes

import type { Acoes } from "termo_core/leads";

export interface Acoes {
  /**
   * Libera o cadastro na área
   */
  criar?: boolean;
  /**
   * Libera a exclusão na área
   */
  deletar?: boolean;
  /**
   * Libera a alteração na área
   */
  editar?: boolean;
  /**
   * Libera a leitura da área (qualquer outra ação liberada já libera a leitura)
   */
  ler?: boolean;
}

Permissoes

import type { Permissoes } from "termo_core/leads";

export interface Permissoes {
  /**
   * Ações liberadas na área `colaboradores`: colaboradores e perfis de acesso
   */
  colaboradores?: Acoes;
  /**
   * Ações liberadas na área `empresas`: Consultar CNPJ e Localizar Empresas
   */
  empresas?: Acoes;
}

Nesta página