- Criado por Danilo Basilio Medeiros, última alteração por Jandir Deodato De Souza Silva em 26 jan, 2021
UsrAccessPDFieldTempo aproximado para leitura: 02 min
Descrição:
Os métodos nesta classe são estáticos e portanto não precisam que um objeto desta classe seja instanciado, portanto o uso dos métodos deve ser FwProtectedDataUtil():Method(params...).
Métodos:
ToAnonymizeByRecno()
Sintaxe:
FwProtectedDataUtil():ToAnonymizeByRecno( cAlias, aRecno, aFields, cMessage ) → lRet
Descrição: UsrAccessPDField
Realiza a anonimização de campos com base em uma lista de Recnos.
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cAlias | Caracter | Nome da tabela que será anonimizada | |
aRecno | Array | Array com lista de recnos a serem anonimizados | |
aFields | Array | Campos a serem anonimizados, se não informado será utilizados os campos cadastrados na XAM | |
cMessage | Caracter | Variável do tipo string, informada por referência onde serão retornadas mensagens de erro |
Retorno:
lRet - Lógico - Indica se a anonimização ocorreu com sucesso
ToAnonymizeByKey()
Sintaxe:
FwProtectedDataUtil():ToAnonymizeByKey( cAlias, aKeys, aFields, cMessage ) → lRet
Descrição:
Realiza a anonimização de campos com base em uma lista de chaves.
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cAlias | Caracter | Nome da tabela que será anonimizada | |
aKeys | Array | Vetor bi-dimensional onde cada dimensão tem duas posições: [1] lista de campos chave, ex.: A1_FILIAL+A1_CODIGO+A1_LOJA [2] vetor com valores a serem anonimizados, ex.: { {'01','002345','01'}, {'01','002345','02'}, {'01','005471','01'} } | |
aFields | Array | Campos a serem anonimizados, se não informado serão utilizados os campos cadastrados na XAM | |
cMessage | Caracter | Variável do tipo string, informada por referência onde serão retornadas mensagens de erro |
Retorno:
lRet - Lógico - Indica se a anonimização ocorreu com sucesso
UsrAccessPDField()
Sintaxe:
FwProtectedDataUtil():UsrAccessPDField( cIdUSer, aFields ) → aRet
Descrição:
Retorna os campos que o usuário possui acesso de acordo com as regras de grupos e acessos configuradas para a Protected Data.
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cIdUSer | Caracter | Id do usuário que será verificado | Opcional, default __cUserId (opcional a partir da versão de lib 20200217. Em versões anteriores este parâmetro é obrigatório). |
aFields | Array | Campos que serão avaliados a partir do usuário informado |
Retorno:
aRet - Lista dos campos que o usuário pode ter acesso a partir das configurações de Dados Protegidos.
Observação:
Os campos que não estiverem em nenhuma regra configurada no Protected Data serão retornados.
IsFieldInList()
Sintaxe:
FwProtectedDataUtil():IsFieldInList( cField ) → lRet
Descrição:
Avalia se um campo está na lista de configuração para Protected Data(tabela XAM).
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cField | Caracter | Código do campo para avaliação |
Retorno:
lRet - Verdadeiro se estiver na tabela, falso quando não está na tabela.
AreFieldsInList()
Sintaxe:
FwProtectedDataUtil():AreFieldsInList( aFields, lRetDetail ) → aRet
Descrição:
Avalia quais campos de uma lista tem configuração para Protected Data(tabela XAM).
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
aFields | Array | Lista dos campos para avaliação | |
lRetDetail | Lógico | Indica se deve preencher os detalhes da configuração (módulos, justificativas, etc) no retorno do método |
Retorno:
aRet - Lista de objetos do tipo FwPDFieldRepository
GetSXGFieldsInList()
Sintaxe:
FwProtectedDataUtil():GetSXGFieldsInList( cGroup, lRetDetail ) → aRet
Descrição:
Recupera a lista de campos de um grupo de campos (SXG) que esteja configurado para Protected Data(tabela XAM).
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cGroup | Caracter | Código do grupo de campos | |
lRetDetail | Lógico | Indica se deve preencher os detalhes da configuração (módulos, justificativas, etc) no retorno do método |
Retorno:
aRet - Lista de objetos do tipo FwPDFieldRepository
CanFieldBeAnonymized()
Sintaxe:
FwProtectedDataUtil():CanFieldBeAnonymized( cField ) → lRet
Descrição:
Avalia se um determinado campo pode ser anonimizado.
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cField | Caracter | Código do campo para avaliação |
Retorno:
lRet - Verdadeiro quando o campo pode ser anonimizado, falso quando não pode.
Observação:
As condições para um campo ser anonimizado são:
- Estar na configuração de Protected Data(tabela XAM) e;
- Não ter nenhuma configuração que indique que não pode ser anonimizado (XAM_ANONIM = 2)
GetSXGFieldsCanBeAnonymized()
Sintaxe:
FwProtectedDataUtil():GetSXGFieldsCanBeAnonymized( cGroup, lRetDetail ) → aRet
Descrição:
Recupera uma lista de campos de um grupo de campos (SXG) que podem ser anonimizados.
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cGroup | Caracter | Código do grupo de campos | |
lRetDetail | Lógico | Indica se deve preencher os detalhes da configuração (módulos, justificativas, etc) no retorno do método |
Retorno:
aRet - Lista de objetos da classe FwPDFieldRepository
GetSXGFieldsCannotBeAnonymized()
Sintaxe:
FwProtectedDataUtil():GetSXGFieldsCannotBeAnonymized( cGroup, lRetDetail ) → aRet
Descrição:
Recupera uma lista de campos de um grupo de campos (SXG) que não podem ser anonimizados.
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cGroup | Caracter | Código do grupo de campos | |
lRetDetail | Lógico | Indica se deve preencher os detalhes da configuração (módulos, justificativas, etc) no retorno do método |
Retorno:
aRet - Lista de objetos da classe FwPDFieldRepository
GetFieldGroups()
Sintaxe:
FwProtectedDataUtil():GetFieldGroups( cField ) → aRet
Descrição:
Busca a lista de grupo Protected Data que um determinado campo faz parte.
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cField | Caracter | Código do campo para consulta |
Retorno:
aRet - Lista de objetos da classe FwPDGroupRepository
Observação:
Caso o campo não esteja configurado na tabela XAM, será retornada uma lista vazia.
GetFieldDetails()
Sintaxe:
FwProtectedDataUtil():GetFieldDetails( cField ) → oRet
Descrição:
Retorna os detalhes da configuração para Protected Data de um determinado campo.
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cField | Caracter | Código do campo para avaliação |
Retorno:
oRet - Objeto da classe FwPDFieldRepository
Observação:
Um campo que não esteja configurado irá retornar um objeto nulo.
IsGroupPersonal()
Sintaxe:
FwProtectedDataUtil():IsGroupPersonal( cGroupId, cDesc [referência] ) → lRet
Descrição:
Identifica se um determinado grupo Protected Data é pessoal.
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cGroupId | Caracter | Código do grupo Protected Data | |
cDesc [referência] | Caracter | Atribui a descrição do grupo pesquisado |
Retorno:
lRet - Verdadeiro caso o grupo seja pessoal, Falso para as outras situações.
IsGroupSensible()
Sintaxe:
FwProtectedDataUtil():IsGroupSensible( cGroupId, cDesc [referência] ) → lRet
Descrição:
Identifica se um determinado grupo Protected Data é sensível.
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cGroupId | Caracter | Código do grupo Protected Data | |
cDesc [referência] | Caracter | Atribui a descrição do grupo pesquisado |
Retorno:
lRet - Verdadeiro caso o grupo seja sensível, Falso para as outras situações.
GetAliasFieldsInList()
Sintaxe:
FwProtectedDataUtil():GetAliasFieldsInList( cAlias, lRetDetail ) → aRet
Descrição:
Retorna a lista de campos configurados para Protected Data que um determinado alias tem.
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cAlias | Caracter | Código do alias para avaliação dos campos | |
lRetDetail | Lógico | Indica se deve preencher os detalhes da configuração (módulos, justificativas, etc) no retorno do método |
Retorno:
aRet - Lista de objeto da classe FwPDFieldRepository
GetAliasAnonymizeFields()
Sintaxe:
FwProtectedDataUtil():GetAliasAnonymizeFields( cAlias, lRetDetail ) → aRet
Descrição:
Busca os campos de um alias que podem ser anonimizados conforme a configuração para Protected Data (tabela XAM).
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cAlias | Caracter | Alias para a pesquisa dos campos | |
lRetDetail | Lógico | Indica se deve preencher os detalhes da configuração (módulos, justificativas, etc) no retorno do método |
Retorno:
aRet - Lista de objeto da classe FwPDFieldRepository
HasAliasAnySensibleField()
Sintaxe:
FwProtectedDataUtil():HasAliasAnySensibleField( cAlias ) → lRet
Descrição:
Indica se um determinado alias tem algum campo que esteja associado a um grupo do tipo sensível.
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cAlias | Caracter | Alias para fazer a consulta |
Retorno:
lRet - Verdadeiro só quando o alias tem algum campo associado a grupo sensível.
HasAliasAnyPersonalField()
Sintaxe:
FwProtectedDataUtil():HasAliasAnyPersonalField( cAlias ) → lRet
Descrição:
Indica se um determinado alias tem algum campo que esteja associado a um grupo do tipo pessoal.
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
cAlias | Caracter | Alias para fazer a consulta |
Retorno:
lRet - Verdadeiro só quando o alias tem algum campo associado a grupo pessoal.
UsrNoAccessFieldsInList()
Sintaxe:
FwProtectedDataUtil():UsrNoAccessFieldsInList( aFields, lAvalPessoal, lAvalSensivel ) → aList
Descrição:
Retorna os campos que o usuário não possui acesso de acordo com os acessos pessoais e sensíveis
Parâmetros:
Nome | Tipo | Descrição | Obrigatório |
---|---|---|---|
aFields | Array | Campos que serão avaliados | |
lAvalPessoal | Lógico | Acesso aos campos do tipo pessoal | |
lAvalSensivel | Lógico | Acesso aos campos do tipo sensível |
Retorno:
aList - Campos que o usuário não possui acesso
Exemplo de uso
#include 'protheus.ch' user function myPDinfo() Local aRet as array Local lRet as logical Local oRet as object Local lDetail as logical Local cMessage as character aRet := FwProtectedDataUtil():UsrAccessPDField("ID USUÁRIO", {"RA_SERCP","RD0_TPDEFF","RA_RG","R8_CID","A1_END"}) // aRet => Campos que o usuário possui acesso // aRet[1] => RA_SERCP // aRet[2] => RA_RG // aRet[3] => A1_END lRet := FwProtectedDataUtil():IsFieldInList('CAMPO_EXISTE') // lRet => .T. lRet := FwProtectedDataUtil():IsFieldInList('CAMPO_NAO_EXISTE') // lRet => .F. lDetail := .T. FwProtectedDataUtil():AreFieldsInList({'FIELD1','FIELD2','FIELD3'}, lDetail) // aRet[1] => objeto FwPDFieldRepository (:cField => FIELD1, :aDetails => array de FwPDFieldDetailRepository) // aRet[1]:GetDetails() => [ detail[1] => (:cJustification, :cClassification, ...) ] // => [ detail[2] => (:cJustification, :cClassification, ...) ] // => [ detail[3] => (:cJustification, :cClassification, ...) ] // aRet[2] => objeto FwPDFieldRepository (:cField => FIELD2, :aDetails => array de FwPDFieldDetailRepository) // aRet[2]:GetDetails() => [ detail[1] => (:cJustification, :cClassification, ...) ] // => [ detail[2] => (:cJustification, :cClassification, ...) ] // => [ detail[3] => (:cJustification, :cClassification, ...) ] aRet := FwProtectedDataUtil():GetSXGFieldsInList('SXG_EXISTE', lDetail) // aRet[1] => objeto FwPDFieldRepository (:cField => FIELD1, :aDetails => array de FwPDFieldDetailRepository) // aRet[1]:GetDetails() => [ detail[1] => (:cJustification, :cClassification, ...) ] // => [ detail[2] => (:cJustification, :cClassification, ...) ] // => [ detail[3] => (:cJustification, :cClassification, ...) ] // aRet[2] => objeto FwPDFieldRepository (:cField => FIELD2, :aDetails => array de FwPDFieldDetailRepository) // aRet[2]:GetDetails() => [ detail[1] => (:cJustification, :cClassification, ...) ] // => [ detail[2] => (:cJustification, :cClassification, ...) ] // => [ detail[3] => (:cJustification, :cClassification, ...) ] aRet := FwProtectedDataUtil():GetSXGFieldsInList('SXG_NAO_EXISTE', lDetail) // aRet => Lista vazia lRet := FwProtectedDataUtil():CanFieldBeAnonymized('FIELD1') // lRet => verdadeiro lRet := FwProtectedDataUtil():CanFieldBeAnonymized('FIELD2') // lRet => falso aRet := FwProtectedDataUtil():GetSXGFieldsCanBeAnonymized('SXG_EXISTE', lDetail) // aRet[1] => objeto FwPDFieldRepository (:cField => FIELD1, :aDetails => array de FwPDFieldDetailRepository) // aRet[1]:GetDetails() => [ detail[1] => (:cJustification, :cClassification, ...) ] // => [ detail[2] => (:cJustification, :cClassification, ...) ] // => [ detail[3] => (:cJustification, :cClassification, ...) ] aRet := FwProtectedDataUtil():GetSXGFieldsCannotBeAnonymized('SXG_EXISTE', lDetail) // aRet[1] => objeto FwPDFieldRepository (:cField => FIELD2, :aDetails => array de FwPDFieldDetailRepository) // aRet[1]:GetDetails() => [ detail[1] => (:cJustification, :cClassification, ...) ] // => [ detail[2] => (:cJustification, :cClassification, ...) ] // => [ detail[3] => (:cJustification, :cClassification, ...) ] aRet := FwProtectedDataUtil():GetFieldGroups('FIELD_EXIST') // aRet[1] => objeto FwPDGrouRepository (:cGroup => ID1, :Description => Grupo ID1, :cType => 1, :lPropri => .T.) // aRet[2] => objeto FwPDGrouRepository (:cGroup => ID2, :Description => Grupo ID2, :cType => 1, :lPropri => .T.) // aRet[3] => objeto FwPDGrouRepository (:cGroup => ID3, :Description => Grupo ID3, :cType => 2, :lPropri => .T.) // aRet[4] => objeto FwPDGrouRepository (:cGroup => ID4, :Description => Grupo ID4, :cType => 2, :lPropri => .F.) aRet := FwProtectedDataUtil():GetFieldGroups('FIELD_DOESNT_EXIST') // aRet => Lista vazia oRet := FwProtectedDataUtil():GetFieldDetails('FIELD_EXIST') // oRet => FwPDFieldRepository (:cField => FIELD2, :aDetails => array de FwPDFieldDetailRepository) // oRet:GetDetails() => [ detail[1] => (:cJustification, :cClassification, ...) ] // => [ detail[2] => (:cJustification, :cClassification, ...) ] // => [ detail[3] => (:cJustification, :cClassification, ...) ] oRet := FwProtectedDataUtil():GetFieldDetails('FIELD_DOESNT_EXIST') // oRet => Nil lRet := FwProtectedDataUtil():IsGroupPersonal('XAL_ID') // lRet => falso lRet := FwProtectedDataUtil():IsGroupSensible('XAL_ID') // lRet => verdadeiro aRet := FwProtectedDataUtil():GetAliasFieldsInList('ALIASX', lDetail) // aRet[1] => objeto FwPDFieldRepository (:cField => ALIASX_FIELD1, :aDetails => array de FwPDFieldDetailRepository) // aRet[1]:GetDetails() => [ detail[1] => (:cJustification, :cClassification, ...) ] // => [ detail[2] => (:cJustification, :cClassification, ...) ] // => [ detail[3] => (:cJustification, :cClassification, ...) ] // aRet[2] => objeto FwPDFieldRepository (:cField => ALIASX_FIELD2, :aDetails => array de FwPDFieldDetailRepository) // aRet[2]:GetDetails() => [ detail[1] => (:cJustification, :cClassification, ...) ] // => [ detail[2] => (:cJustification, :cClassification, ...) ] // => [ detail[3] => (:cJustification, :cClassification, ...) ] aRet := FwProtectedDataUtil():GetAliasAnonymizeFields('ALIASX', lDetail) // aRet[1] => objeto FwPDFieldRepository (:cField => ALIASX_FIELD1, :aDetails => array de FwPDFieldDetailRepository) // aRet[1]:GetDetails() => [ detail[1] => (:cJustification, :cClassification, ...) ] // => [ detail[2] => (:cJustification, :cClassification, ...) ] // => [ detail[3] => (:cJustification, :cClassification, ...) ] lRet := FwProtectedDataUtil():HasAliasAnySensibleField('ALIASX') // lRet => verdadeiro / falso FwProtectedDataUtil():HasAliasAnyPersonalField('ALIASX') // lRet => verdadeiro / falso lRet := FwProtectedDataUtil():ToAnonymizeByRecNo( 'ALIASX', {1}, { "A1_END", "A1_DATATST", "A1_COD", "A1_MUN" }, @cMessage ) // lRet => verdadeiro / falso lRet := FwProtectedDataUtil():ToAnonymizeByKey( cAlias, {"A1_FILIAL+A1_COD+A1_LOJA", { {"0101", "000003", "01"},; {"0101", "000004", "01"} } } , { "A1_END", "A1_DATATST", "A1_COD", "A1_MUN" }, @cMessage ) // lRet => verdadeiro / falso return