Páginas filhas
  • /users - implementação do protocolo SCIM sobre o cadastro de usuários do Protheus.

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Rest users

O SCIM 'users' é um protocolo de  aplicação REST para provisionamento e gerenciamento de dados de identidade na web. O protocolo suporta a criação, modificação, recuperação e descoberta de usuários.

O serviço users do Protheus permite a inclusão e manipulação de dados de usuário no sistema. É altamente aconselhável que a autenticação de serviços esteja habilitada no servidor rest para evitar manipulação indevida dos dados. Todos os usuários que se autenticarem para utilizar este serviço devem possuir acesso a rotina CFGA510 (o cadastro de usuários no Protheus)

Detalhes da configuração do REST Protheus e como ligar a autenticação dos serviços acesse a página do REST Protheus aqui.

Aviso
titleAtenção
  • Via REST apenas é possível a criação básica do usuário. Para configurar permissões, acessos, menus, etc, é necessária a utilização do Identity.
  • Quando a senha do usuário é alterada via REST, mesmo  mesmo enviando a informação forceChangePassword informação forceChangePassword como Falso falso, caso a senha não esteja de acordo com as Políticas de Senha do Protheus, ao efetuar o login o sistema exibirá a tela de troca de senha.
  • Este serviço é do tipo NOTENANT (faz autenticação, mas não valida empresa e filial).

Métodos disponíveis

GET

Sintaxe /users/{userId}

Para recuperar um usuário conhecido, os clientes enviam requisições GET. Se o usuário existir o servidor responde com o código de estado 200 e inclui o resultado no corpo da resposta. Também é possível listar os usuários do sistema, omitindo o envio do pathParam {userId}.

HTML
    <h2>Parâmetros</h2>
    <div class="methodsubtabletitle"><b>pathParam</b></div>
    <table id="methodsubtable" border="1">
        <tr>
            <th width="150px">Nome</th>
            <th>Tipo</th>
            <th>Descrição</th>
            <th>Default</th>
        </tr>
        <tr>
            <td style="width:150px;">userId
            </td>
            <td>string</td>
            <td style="width:150px;">id ou código do usuário no sistema</td>
            <td></td>
        </tr>

    </table>
    <br>
    <div class="methodsubtabletitle"><b>queryParam</b></div>
    <table id="methodsubtable" border="1">
        <tr>
            <th width="150px">Nome</th>
            <th>Tipo</th>
            <th>Descrição</th>
            <th>Default</th>
        </tr>
        <tr>
            <td style="width:150px;">showAdmin
            </td>
            <td>boolean</td>
            <td style="width:150px;">Indica se o get deve retornar o usuário admin</td>
            <td>false</td>
        </tr>
        <tr>
            <td style="width:150px;">count
            </td>
            <td>numérico</td>
            <td style="width:150px;">Indica quantos usuários deverão ser retornados pelo método</td>
            <td>Todos</td>
        </tr>
        <tr>
            <td style="width:150px;">startIndex
            </td>
            <td>numérico</td>
            <td style="width:150px;">Indica a partir de qual usuário encontrado deverá ocorrer o retorno.</td>
            <td>1</td>
        </tr>
        <tr>
            <td style="width:150px;">attributes
            </td>
            <td>string</td>
            <td style="width:150px;">Indica quais atributos do jSon devem ser retornados. Os atributos devem ser separados por ','.
            </td>
            <td>Retorna todos os atributos</td>
        </tr>


    </table>
Nota
titleAtenção

O parâmetro atributes é case sensitive.

Retorno:

HTML
    <h2>Parâmetros</h2>
    <div class="methodsubtabletitle"><b>Body</b></div> <tr>
    <table id="methodsubtable">
        <tr><td style="width:150px;">foundBy
            <th width="150px">Nome</th></td>
            <th>Tipo<<td>string</th>td>
            <th>Descrição</th>
        </tr><td style="width:150px;">Parâmetro opcional, usado para determinar o tipo de busca do usuário por ID, LOGIN, MAIL, ou AD</td>
			<td>Todos</td>
        <tr></tr>
         <tr>
           <td <td style="width:150px;">totalResults>domainId

            </td>
            <td>numérico<<td>string</td>
            <td style="width:150px;">Indica>Domínio cadastrado apara quantidadeo deUsuário, registros encontrados</td>
        </tr>parâmetro obrigatório quando o tipo de busca for AD(Active Directory)</td>
        </tr>
</table>
Nota
titleAtenção

O parâmetro atributes é case sensitive.

Caso o parâmetro foundBy não for informado, a busca é feita com base em todos os tipos.

Parâmetros foundBy e domainId disponíveis a partir da versão de lib_20230918.


Retorno:

HTML
<tr>
     <h2>Parâmetros</h2>
    <div   <td styleclass="width:150px;">itemsPerPage

methodsubtabletitle"><b>Body</b></div>
    <table id="methodsubtable" border="1">
      </td>
  <tr>
          <td>numérico</td>
  <th width="150px">Nome</th>
           <td style="width:150px;">Quantidade de itens retornados na requisição</td> <th>Tipo</th>
            <th>Descrição</th>
        </tr>
        <tr>
            <td style="width:150px;">startIndex<>totalResults

            </td>
            <td>numérico</td>
            <td style="width:150px;">Registro>Indica “aa partirquantidade de”de do retorno dos registros<registros encontrados</td>
        </tr>
        <tr>
            <td style="width:150px;">Id<>itemsPerPage

            </td>
            <td>string<<td>numérico</td>
            <td style="width:150px;">Id>Quantidade oude códigoitens doretornados usuáriona no Protheus<requisição</td>
        </tr>
        <tr>
            <td style="width:150px;">meta<>startIndex</td>
            <td>jSon<<td>numérico</td>
            <td style="width:150px;">Relacionado>Registro “a apartir criaçãode” do usuário<retorno dos registros</td>
        </tr>
        <tr>
            <td style="width:150px;">created<>Id</td>
            <td>String<<td>string</td>
            <td style="width:150px;">Data>Id deou criaçãocódigo do usuário. Retorna no formato AAAA-MM-DD_HH:MM:SS<Protheus</td>
        </tr>
        <tr>
            <td style="width:150px;">lastModified<>meta</td>
            <td>String<<td>jSon</td>
            <td style="width:150px;">Data>Relacionado daa última alteraçãocriação do usuário. Retorna no formato AAAA-MM-DD_HH:MM:SS<usuário</td>
        </tr>
        <tr>
            <td style="width:150px;">externalId<>created</td>
            <td>string<<td>String</td>
            <td style="width:150px;">Código>Data de externocriação do usuário. (e-mail para a maioria dos sistemas)<Retorna no formato AAAA-MM-DD_HH:MM:SS</td>
        </tr>
        <tr>
            <td style="width:150px;">name<>lastModified</td>
            <td>string<<td>String</td>
            <td style="width:150px;">Código>Data da última alteração do usuário. Retorna no sistema< formato AAAA-MM-DD_HH:MM:SS</td>
        </tr>
        <tr>
            <td style="width:150px;">givenName<>externalId</td>
            <td>string</td>
            <td style="width:150px;">Primeiro>Código nomeexterno do usuário< usuário (e-mail para a maioria dos sistemas)</td>
        </tr>
        <tr>
            <td style="width:150px;">familyName<>name</td>
            <td>string</td>
            <td style="width:150px;">Segundo>Código do nomeusuário dono usuário<sistema</td>
        </tr>
        <tr>
            <td style="width:150px;">displayName<>givenName</td>
            <td>string</td>
            <td style="width:150px;">nome>Primeiro nome do usuário no sistema<usuário</td>
        </tr>
        <tr>
            <td style="width:150px;">emails<>familyName</td>
            <td>array de objetos<<td>string</td>
            <td style="width:150px;"><>Segundo nome do usuário</td>
        </tr>
        <tr>
            <td style="width:150px;">emails:value</>displayName</td>
            <td>string</td>
            <td style="width:150px;">E-mail>nome do usuário no sistema</td>
        </tr>
        <tr>
            <td style="width:150px;">emails:type<>emails</td>
            <td>array <td>string<de objetos</td>
            <td style="width:150px;">Tipo do e-mail. Sempre retorna "work"<></td>
        </tr>
        <tr>
            <td style="width:150px;">primary<>emails:value</td>
            <td>boolean<<td>string</td>
            <td style="width:150px;">Indica se é o e>E-mail primário do usuário. Sempre retorna true<no sistema</td>
        </tr>
        <tr>
            <td style="width:150px;">active<>emails:type</td>
            <td>boolean<<td>string</td>
            <td style="width:150px;">Retorna>Tipo se o usuário está ativo ou não no sistema<do e-mail. Sempre retorna "work"</td>
        </tr>
        <tr>
            <td style="width:150px;">groups<>primary</td>
            <td>array de objetos</<td>boolean</td>
            <td style="width:150px;">Grupos>Indica aose qualé o e-mail primário do usuário. pertence<Sempre retorna true</td>
        </tr>
        <tr>
            <td style="width:150px;">groups:value<>active</td>
            <td>string<<td>boolean</td>
            <td style="width:150px;">Código do grupo<>Retorna se o usuário está ativo ou não no sistema</td>
        </tr>
        <tr>
            <td style="width:150px;">groups:display<>groups</td>
            <td>array <td>string<de objetos</td>
            <td style="width:150px;">Descrição do grupo<>Grupos ao qual o usuário pertence</td>
        </tr>
        <tr>
            <td style="width:150px;">title<>groups:value</td>
            <td>string</td>
            <td style="width:150px;">Cargo>Código do usuário<grupo</td>
        </tr>
        <tr>
            <td style="width:150px;">employeeNumber<>groups:display</td>
            <td>string</td>
            <td style="width:150px;">Código>Descrição dedo funcionário<grupo</td>
        </tr>
        <tr>
            <td style="width:150px;">department<>title</td>
            <td>string</td>
            <td style="width:150px;">Código>Cargo do departamento do usuário</td>
        </tr>
        <tr>
            <td style="width:150px;">manager<>employeeNumber</td>
            <td>array de objetos</td>
 <td>string</td>
            <td style="width:150px;">Informações>Código dos superiores do usuário<de funcionário</td>
        </tr>
        <tr>
            <td style="width:150px;">manager:manageId<>department</td>
            <td>string</td>
            <td style="width:150px;">Código do superiordepartamento do usuário</td>
        </tr>
        <tr>
            <td style="width:150px;">manager:displayName<>manager</td>
            <td>string<<td>array de objetos</td>
            <td style="width:150px;">Nome>Informações dodos superiorsuperiores nodo sistema<usuário</td>
        </tr>

        </table>
Bloco de código
languagejs
themeEclipse
titleExemplo do json de retorno
{<tr>
    "schemas": [
       <td style="urn:scim:schemas:core:2.0:User",
width:150px;">manager:manageId</td>
         "urn:scim:schemas:extension:enterprise:2.0:User"   <td>string</td>
    ],
    "id": "000021",
   <td "meta": {style="width:150px;">Código do superior do usuário</td>
        "created": "2018-02-13_00:00:00",
</tr>
        <tr>
  "lastModified": "2018-02-13_00:00:00"
    },
    "externalId": "[email protected]",
    "userName": "User1", <td style="width:150px;">manager:displayName</td>
    "name": {
        "formatted": "User1",<td>string</td>
        "givenName": "User1",
       <td style="familyName"width: "."
    },150px;">Nome do superior no sistema</td>
    "displayName": "Use1r",
    "emails": [</tr>

    </table>
Bloco de código
languagejs
themeEclipse
titleExemplo do json de retorno
    {
            "value"schemas": "[email protected]",
   [
         "type": "work"urn:scim:schemas:core:2.0:User",
            "primary": true
        }"urn:scim:schemas:extension:enterprise:2.0:User"
    ],
    "activeid": true"000021",
    "groupsmeta": [{
        {
            "value": "000001",
  "created": "2018-02-13_00:00:00",
          "displaylastModified": "grupo22018-02-13_00:00:00"
        }
    ],
    "titleexternalId": "Coordenador[email protected]",
    "employeeNumberuserName": "02|00|000001User1",
    "departmentname": "RH",{
    "manager": [
        {"formatted": "User1",
            "managerIdgivenName": "000000User1",
        "familyName": "."
    },
    "displayName": "AdministradorUse1r",
    "emails": [
    }
    ]{
}
    

A busca por um usuário passando o Id difere apenas da omissão no resultado dos parâmetros totalResult, itensPerPage e startIndex.

GET (GetUserId)

Sintaxe /users/GetUserId

Retorna o id do usuário atualmente logado pelo serviço REST no Protheus.

Bloco de código
languagejs
themeEclipse
titleExemplo de retorno do método
{
    "userID": "000000"
}

POST

Sintaxe /users/{userid}/{operation}

Cria novos usuários no sistema devolvendo na requisição, quando bem sucedida, o código de resposta 201 (created).

HTML
    <h2>Parâmetros</h2>
    "value": "[email protected]",
        <div class="methodsubtabletitle">
   "type": "work",
    <b>pathParam</b>
    </div>
    <table id="methodsubtableprimary">: true
        <tr>}
    ],
      "active": true,
   <th width="150px">Nome</th>groups": [
        {
    <th>Tipo</th>
        "value": "000001",
   <th>Descrição</th>
            <th>Default</th>"display": "grupo2"
        </tr>}
    ],
     <tr>"title": "Coordenador",
    "employeeNumber": "02|00|000001",
       <td style="width:150px;">userId
"department": "RH",
    "manager": [
        </td>{
            <td>string</td>"managerId": "000000",
            "displayName": "Administrador"
        }
    ]
}
   

A busca por um usuário passando o Id difere apenas da omissão no resultado dos parâmetros totalResult, itensPerPage e startIndex.

GET (GetUserId)

Sintaxe /users/GetUserId

Retorna o id do usuário atualmente logado pelo serviço REST no Protheus.

Bloco de código
languagejs
themeEclipse
titleExemplo de retorno do método
{
    "userID": "000000"
}

POST

Sintaxe /users/{userid}/{operation}

Cria novos usuários no sistema devolvendo na requisição, quando bem sucedida, o código de resposta 201 (created).

HTML
    <h2>Parâmetros</h2>
    <div class="methodsubtabletitle"><td style="width:150px;">Código do usuário no sistema (POST para bloquear ou desbloquear um usuário existente. Para bloquear ou desbloquear
                é necessário também enviar o parâmetro operation)</td>
            <td></td>
        <<b>pathParam</tr>b>
    </div>
    <tr> <table id="methodsubtable" border="1">
        <tr>
        <td style    <th width="width:150px;">operation
>Nome</th>
            <th>Tipo</th>
         </td>
   <th>Descrição</th>
            <th>Default</th>
      <td>string<  </td>tr>
        <tr>
            <td style="width:150px;">Valores aceitos: activate e deactivate.>userId
            </td>
            Indica<td>string</td>
 se o usuário será ativado no sistema (activate) ou se o usuário será 
               <td style="width:150px;">Código do usuário no sistema (POST para bloquear ou desbloquear um usuário existente. Para bloquear ou desbloquear
         bloqueado via SAML (deactivate) ou se um novoé usuárionecessário serátambém criadoenviar 
o parâmetro operation)</td>
            <td></td>
        </tr>
  (parâmetro vazio ou qualquer outro valor diferente<tr>
 dos anteriores. Caso o 
           <td style="width:150px;">operation
            parâmetro userId seja enviado mas</td>
 não seja enviado o parâmetro operation é 
        <td>string</td>
                assumido que um novo usuário será criado no sistema <td style="width:150px;">Valores aceitos: activate e deactivate.
                        </td>
Indica se o usuário será ativado no sistema (activate) ou se o usuário será 
  <td></td>
            </tr>

    </table>
    <br>
  bloqueado via <div class="methodsubtabletitle">
        <b>body</b>SAML (deactivate) ou se um novo usuário será criado 
    </div>
    <table id="methodsubtable">
        <tr>
       (parâmetro vazio ou qualquer outro valor diferente  <th width="150px">Nome</th>dos anteriores. Caso o 
            <th>Tipo</th>
            <th>Descrição</th>
parâmetro userId seja enviado mas não seja enviado o parâmetro operation é <th>Default</th>
        </tr>
         <tr>
       assumido que um novo usuário <td style="width:150px;">userName</td>
   será criado no sistema 
         <td>string</td>
            <td style="width:150px;">Nome do usuário<</td>
            <td style="width:150px;">valor do atributo ext<td></adDomain</td>
            </tr>

    </table>
    <tr><br>
            <td style="width:150px;">displayName</td><div class="methodsubtabletitle">
        <b>body</b>
    <td>string<</td>div>
    <table id="methodsubtable" border="1">
      <td style="width:150px;">nome completo do usuário</td> <tr>
            <td<th stylewidth="width:150px;"><>Nome</td>th>
        </tr>

    <th>Tipo</th>
            <tr><th>Descrição</th>
            <td <th>Default</th>
        </tr>
        <tr>
            <td style="width:150px;">externalId<>userName</td>
            <td>string</td>
            <td style="width:150px;">Código>Nome externo do usuário</td>
            <td style="width:150px;">Código externo>valor do usuário. Quando enviado indica que o usuário bloqueado via SAML será reativado. O Envio de
   atributo ext/adDomain</td>
        </tr>
        <tr>
             um externalId que não exista irá gerar a inclusão de um novo usuário.<<td style="width:150px;">displayName</td>
            <td>string</td>
        </tr>

    <td style="width:150px;">nome completo do <tr>usuário</td>
            <td style="width:150px;">title<></td>
            <td>string</td></tr>

            <td style="width:150px;">Cargo do usuário</td><tr>
            <td style="width:150px;"><>externalId</td>
        </tr>

        <tr><td>string</td>
            <td style="width:150px;">emails
>Código externo do usuário</td>
            <td <span style="colorwidth:red150px;">*
>Código externo do usuário. Quando enviado indica que o usuário bloqueado via SAML será reativado. O     <sup>obrigatório</sup>Envio de
                </span>
um externalId que não exista irá gerar a inclusão de um novo usuário.</td>
        </tr>

      <td>array de objetos</td><tr>
            <td style="width:150px;">O primeiro e-mail com o valor primary apontado como true é o email cadastrado para o usuário (é necessário no
>title</td>
            <td>string</td>
            <td style="width:150px;">Cargo do usuário</td>
      mínimo um email primário. Qualquer email não primário enviado é descartado). Caso o e-mail enviado já exista
<td style="width:150px;"></td>
        </tr>

        <tr>
          em outro usuário o e-mail ficará em branco.</td>
<td style="width:150px;">emails
                <td<span style="widthcolor:150pxred;"></td>>*
        </tr>

            <tr><sup>obrigatório</sup>
            <td style="width:150px;">emails:value</td>    </span>
            <td>string<</td>
            <td style="width:150px;">Código do e-mail<<td>array de objetos</td>
            <td style="width:150px;"></td>
>O primeiro e-mail com o valor primary  </tr>

        <tr>apontado como true é o email cadastrado para o usuário (é necessário no
            <td style="width:150px;">emails:primary</td>
   mínimo um email primário. Qualquer email não primário enviado <td>boolean</td>
       é descartado). Caso o e-mail enviado já exista
     <td style="width:150px;">Indica se é um email primário<      em outro usuário o e-mail ficará em branco.</td>
            <td style="width:150px;"></td>
        </tr>

        <tr>
            <td style="width:150px;">active<>emails:value</td>
            <td>boolean<<td>string</td>
            <td style="width:150px;">indica>Código se o usuário estará ativo ou bloqueado<do e-mail</td>
            <td style="width:150px;">true<></td>
        </tr>

        <tr>
            <td style="width:150px;">groups<>emails:primary</td>
            <td>array de objetos<<td>boolean</td>
            <td style="width:150px;">grupos>Indica aose qualé oum usuárioemail está associado<primário</td>
            <td style="width:150px;"></td>
        </tr>

        <tr>
            <td style="width:150px;">groups:value
>active</td>
            <td>boolean</td>
            <span<td style="colorwidth:red150px;">*
>indica se o usuário estará ativo ou bloqueado</td>
             <sup>obrigatório</sup><td style="width:150px;">true</td>
        </tr>

        </span><tr>
             <<td style="width:150px;">groups</td>
            <td>array <td>string<de objetos</td>
            <td style="width:150px;">código do grupo<>grupos ao qual o usuário está associado</td>
            <td style="width:150px;"></td>
        </tr>

        <tr>
            <td style="width:150px;">password</td>>groups:value
            <td>string</td>
    <span style="color:red;">*
       <td style="width:150px;">senha do usuário. Quando não informado a senha deverá ser alterada posteriormente pelo admin.</td><sup>obrigatório</sup>
            <td style="width:150px;">hash randômico.</td>
        </tr>span>

        <tr>
            <td style="width:150px;">ext/SAMAccountName<</td>
            <td>string</td>
            <td style="width:150px;">Indica o login>código do usuário no SSO (caso informado, ele substituirá o valor informado no campo userName)<grupo</td>
            <td style="width:150px;"></td>
        </tr>

        <tr>
            <td style="width:150px;">ext/adDomain<>password</td>
            <td>string</td>
            <td style="width:150px;">domínio>senha do usuário. do SSO</td>
            Quando não informado a senha deverá ser alterada posteriormente pelo admin.</td>
            <td style="width:150px;"><>hash randômico.</td>
        </tr>

        <tr>
            <td style="width:150px;">urn:scim:schemas:extension:enterprise:2.0:User<>ext/SAMAccountName</td>
            <td>objeto<<td>string</td>
            <td style="width:150px;">Indica aso configuraçõeslogin dedo usuário superior< no SSO (caso informado, ele substituirá o valor informado no campo userName)</td>
            <td style="width:150px;"></td>
        </tr>

        <tr>
            <td style="width:150px;">urn:scim:schemas:extension:enterprise:2.0:User:manager<>ext/adDomain</td>
            <td>array de objetos</<td>string</td>
            <td style="width:150px;">Array>domínio contendodo informaçõesusuário do usuário superior<SSO</td>
            <td style="width:150px;"></td>
        </tr>

        <tr>
            <td style="width:150px;">urn:scim:schemas:extension:enterprise:2.0:User:manager:managerId<User</td>
            <td>string<<td>objeto</td>
            <td style="width:150px;">código do>Indica as configurações de usuário superior</td>
            <td style="width:150px;"></td>
        </tr>

        <tr>
            <td style="width:150px;">urn:scim:schemas:extension:totvsenterprise:2.0:User/forceChangePassword<:manager</td>
            <td>array de <td>boolean<objetos</td>
            <td style="width:150px;">Identifica>Array secontendo deveinformações oudo não realizar a troca de senha no primeiro acesso<usuário superior</td>
            <td style="width:150px;">false<></td>
        </tr>

        <tr>
            <td style="width:150px;">urn:scim:schemas:extension:totvsenterprise:2.0:User/employeeNumber<:manager:managerId</td>
            <td>string</td>
            <td style="width:150px;">Vínculo fincional>código do usuário. Devemsuperior</td>
 ser enviados os valores de Grupo de Empresas, Filial e Código do vínculo
                separados por “|”. Exemplo para o grupo 18, filial D MG 01 e código 002: 18|D MG 01|002</td>
            <td style=<td style="width:150px;"></td>
        </tr>

        <tr>
            <td style="width:150px;">urn:scim:schemas:extension:totvs:2.0:User/department<forceChangePassword</td>
            <td>string<<td>boolean</td>
            <td style="width:150px;">código>Identifica dose departamentodeve do usuário</td>
            ou não realizar a troca de senha no primeiro acesso</td>
            <td style="width:150px;"><>false</td>
        </tr>

        <tr>
            <td style="width:150px;">urn:scim:schemas:extension:totvs:2.0:User/groupRule<employeeNumber</td>
            <td>numérico<<td>string</td>
            <td style="width:150px;">Define a regra>Vínculo fincional do usuário. Devem ser enviados os valores de priorizaçãoGrupo porde grupo:Empresas, 1Filial priorizar,e 2Código desconsiderardo evínculo
 3 somar. Qualquer valor diferente deste,
          separados por “|”. Exemplo para o quandogrupo enviado18, assume o valor 1.<filial D MG 01 e código 002: 18|D MG 01|002</td>
            <td style="width:150px;"></td>
        </tr>



    </table>

Exemplo de requisição para a inclusão de usuário:

Bloco de código
languagejs
themeEclipse
titleExemplo de requisição
{ 
   "schemas":[ 
<tr>
       "urn:scim:schemas:core:2.0:User",
     <td "urnstyle="width:150px;">urn:scim:schemas:extension:enterprisetotvs:2.0:User"/department</td>
   ],
     "externalId":"TesteUsr",
   "meta":{ 


 <td>string</td>
    },
   "userName":"Usr Tst",
   "displayName":"User",
   "title":"Coordenador",
   "emails":[  <td style="width:150px;">código do departamento do usuário</td>
      { 
     <td    "value":"[email protected]",style="width:150px;"></td>
         "primary":true
      }</tr>

   ],
   "active":true,
   "groups":[ <tr>
      { 
      <td   "value":"000002"
      }
   ],
   "password":"pass001",
   "urnstyle="width:150px;">urn:scim:schemas:extension:totvs:2.0:User/forceChangePassword":true,
   "urn:scim:schemas:extension:enterprise:2.0:User/employeeNumber":"02|00|000001",
   "urn:scim:schemas:extension:enterprise:2.0:User/department":"RH",
   "urn:scim:schemas:extension:totvs:2.0:User/groupRule":2,
   "ext/sAMAccountName":"user0007",
   "ext/adDomain":"XP01",
   "urn:scim:schemas:extension:enterprise:2.0:User":{ 
      "manager":[ 
         { 
            "managerid":"000000"
         }
      ]
   }
}

PUT

groupRule</td>
            <td>numérico</td>
            <td style="width:150px;">Define a regra de priorização por grupo: 1 priorizar, 2 desconsiderar e 3 somar. Qualquer valor diferente deste,
                quando enviado, assume o valor 1.</td>
            <td style="width:150px;"></td>
        </tr>
         <tr>
            <td style="width:150px;">userAllEmp</td>
            <td>boolean</td>
            <td style="width:150px;">Define se o usuário será criado com acessos a todas as empresas, campo considerado apenas na inclusão de usuário. (disponível a partir da lib 20231121)</td>
            <td style="width:150px;"></td>
        </tr> 
	  <tr>
            <td style="width:150px;">userAllModule</td>
            <td>boolean</td>
            <td style="width:150px;">Define se o usuário será criado com acessos a todos os módulos, campo considerado apenas na inclusão de usuário. (disponível a partir da lib 20231121)</td>
            <td style="width:150px;"></td>
        </tr>  
	  <tr>
            <td style="width:150px;">userAllAccess</td>
            <td>boolean</td>
            <td style="width:150px;">Define se o usuário será criado com todos os acessos habilitados, campo considerado apenas na inclusão de usuário. (disponível a partir da lib 20231121)</td>
            <td style="width:150px;"></td>
        </tr>  





    </table>


Exemplo de requisição para a inclusão de usuário:


Bloco de código
languagejs
themeEclipse
titleExemplo de requisição
{ 
   "schemas":[ 
      "urn:scim:schemas:core:2.0:User",
      "urn:scim:schemas:extension:enterprise:2.0:User"
   ],
   "externalId":"TesteUsr",
   "meta":{ 


   },
   "userName":"Usr Tst",
   "displayName":"User",
   "title":"Coordenador",
   "emails":[ 
      { 
         "value":"[email protected]",
         "primary":true
      }
   ],
   "active":true,
   "groups":[ 
      { 
         "value":"000002"
      }
   ],
   "password":"pass001",
   "urn:scim:schemas:extension:totvs:2.0:User/forceChangePassword":true,
   "urn:scim:schemas:extension:enterprise:2.0:User/employeeNumber":"02|00|000001",
   "urn:scim:schemas:extension:enterprise:2.0:User/department":"RH",
   "urn:scim:schemas:extension:totvs:2.0:User/groupRule":2,
   "ext/sAMAccountName":"user0007",
   "ext/adDomain":"XP01",
   "urn:scim:schemas:extension:enterprise:2.0:User":{ 
      "manager":[ 
         { 
            "managerid":"000000"
         }
      ]
   }
}

PUT

Sintaxe /users/{userid}

Método utilizado para atualizar um usuário existente. Todos os parâmetros podem ser enviados, tal qual o método POST.

HTML
    <h2>Parâmetros</h2>
    <div class="methodsubtabletitle">
        <b>pathParam</b>
    </div>
    <table id="methodsubtable" border="1">
        <tr>
            <th width="150px">Nome</th>
            <th>Tipo</th>
            <th>Descrição</th>
            <th>Default</th>
        </tr>
        <tr>
            <td style="width:150px;">userId
                <span style="color:red;">*
                    <sup>obrigatório</sup>
                </span>
            </td>
            <td>string</td>
            <td style="width:150px;">Código do usuário</td>
            <td></td>
        </tr>
    </table> 
	<br>
    <div class="methodsubtabletitle">
		<b>queryParam</b>
	</div>
    <table id="methodsubtable" border="1">
        <tr>
            <th width="150px">Nome</th>
            <th>Tipo</th>
            <th>Descrição</th>
            <th>Default</th>
        </tr>
        <tr>
            <td style="width:150px;">foundBy
            </td>
            <td>string</td>
            <td style="width:150px;">Parâmetro opcional, usado para determinar o tipo de busca do usuário por ID, LOGIN, MAIL, ou AD</td>
			<td>Todos</td>
        </tr>
        <tr>
            <td style="width:150px;">domainId
            </td>
            <td>string</td>
            <td style="width:150px;">Domínio cadastrado para o Usuário, parâmetro obrigatório quando o tipo de busca for AD(Active Directory)</td>
        </tr>
	</table>
Nota
titleAtenção

Caso o parâmetro foundBy não for informado, a busca é feita com base em todos os tipos.

Parâmetros foundBy e domainId disponíveis a partir da versão de lib_20230918.


Retorno: true, false ou o erro gerado.

DELETE

Sintaxe Sintaxe /users/{userid}

Método utilizado para atualizar bloquear um usuário existente. Todos os parâmetros podem ser enviados, tal qual o método POSTO usuário é bloqueado, e todos os itens amarrados ao seu registro (grupos, vínculo funcional, etc) são desassociados.

HTML
    <h2>Parâmetros</h2>
    <div class="methodsubtabletitle">
        <b>pathParam</b>
    </div>
    <table id="methodsubtable" border="1">
        <tr>
            <th width="150px">Nome</th>
            <th>Tipo</th>
            <th>Descrição</th>
            <th>Default</th>
        </tr>
        <tr>
            <td style="width:150px;">userId
                <span style="color:red;">*
                    <sup>obrigatório</sup>
                </span>
    <sup>obrigatório</sup>
        </td>
            <td>string</td></span>
            <td style="width:150px;">Código do usuário<</td>
            <td><<td>string</td>
        </tr>
    </table>


Retorno: true, false ou o erro gerado.

DELETE

Sintaxe /users/{userid}

Método utilizado para bloquear um usuário existente. O usuário é bloqueado, e todos os itens amarrados ao seu registro (grupos, vínculo funcional, etc) são desassociados.

HTML
    <h2>Parâmetros</h2>  <td style="width:150px;">Código do usuário</td>
    <div class="methodsubtabletitle">        <td></td>
        </tr>
    <b>pathParam</b>
</table> 
    <br>
    <div class="methodsubtabletitle">
		<b>queryParam</b>
	</div>
    <table id="methodsubtable" border="1">
        <tr>
            <th width="150px">Nome</th>
            <th>Tipo</th>
            <th>Descrição</th>
            <th>Default</th>
        </tr>
        <tr>
            <td style="width:150px;">userId
  >foundBy
            </td>
            <td>string</td>
             <td <span style="colorwidth:red150px;">*
>Parâmetro opcional, usado para determinar o tipo de busca do usuário por ID, LOGIN, MAIL, ou AD</td>
			<td>Todos</td>
       <sup>obrigatório< </sup>tr>
        <tr>
             </span> <td style="width:150px;">domainId
            </td>
            <td>string</td>
            <td style="width:150px;">Código>Domínio do usuário</td>
            <td><cadastrado para o Usuário, parâmetro obrigatório quando o tipo de busca for AD(Active Directory)</td>
        </tr>
    	</table>


Retorno: true, false ou o erro gerado.


Status do documentoConcluído
Data14/02/2018
Versão2.0
Versão anterior1.0
Autores
Índice

Índice
outlinetrue
indent10px