Páginas filhas
  • FwProtectedDataUtil

Versões comparadas

Chave

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

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:

NomeTipoDescriçãoObrigatório
cAliasCaracter Nome da tabela que será anonimizada
aRecnoArray Array com lista de recnos a serem anonimizados
aFieldsArray Campos a serem anonimizados, se não informado será utilizados
os campos cadastrados na XAM

cMessageCaracter 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:

NomeTipoDescriçãoObrigatório
cAliasCaracter Nome da tabela que será anonimizada
aKeysArray 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'} }

aFieldsArray Campos a serem anonimizados, se não informado serão utilizados
os campos cadastrados na XAM

cMessageCaracter 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



UsrAccessPDFieldRUsrAccessPDField()

Sintaxe:
FwProtectedDataUtil():UsrAccessPDFieldRUsrAccessPDField( cUsercIdUSer, 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:

NomeTipoDescriçãoObrigatório
cUser
cIdUSerCaracter 
Usuário
Id do usuário  que será verificadoOpcional, default __cUserId (opcional a partir da versão de lib 20200217. Em versões anteriores este parâmetro é obrigatório).
aFieldsArray 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:

NomeTipoDescriçãoObrigatório
cFieldCaracter 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:

NomeTipoDescriçãoObrigatório
aFieldsArrayLista dos campos para avaliação
lRetDetailLógicoIndica 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:

NomeTipoDescriçãoObrigatório
cGroupCaracterCódigo do grupo de campos
lRetDetailLógicoIndica 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:

NomeTipoDescriçãoObrigatório
cFieldCaracterCó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:

NomeTipoDescriçãoObrigatório
cGroupCaracterCódigo do grupo de campos
lRetDetailLógicoIndica 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:

NomeTipoDescriçãoObrigatório
cGroupCaracterCódigo do grupo de campos
lRetDetailLógicoIndica 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:

NomeTipoDescriçãoObrigatório
cFieldCaracterCó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:

NomeTipoDescriçãoObrigatório
cFieldCaracterCó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:

NomeTipoDescriçãoObrigatório
cGroupIdCaracterCódigo do grupo Protected Data
cDesc [referência]CaracterAtribui 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:

NomeTipoDescriçãoObrigatório
cGroupIdCaracterCódigo do grupo Protected Data
cDesc [referência]CaracterAtribui 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:

NomeTipoDescriçãoObrigatório
cAliasCaracterCódigo do alias para avaliação dos campos
lRetDetailLógicoIndica 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:

NomeTipoDescriçãoObrigatório
cAliasCaracterAlias para a pesquisa dos campos
lRetDetailLógicoIndica 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:

NomeTipoDescriçãoObrigatório
cAliasCaracterAlias 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:

NomeTipoDescriçãoObrigatório
cAliasCaracterAlias 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:

NomeTipoDescriçãoObrigatório
aFieldsArrayCampos que serão avaliados
lAvalPessoalLógicoAcesso aos campos do tipo pessoal
lAvalSensivelLógicoAcesso aos campos do tipo sensível


Retorno:
aList - Campos que o usuário não possui acesso





Exemplo de uso

Bloco de código
#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("UsuárioID 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





Templatedocumentos


HTML
<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>
Informações
Disponível a partir da LIB versão 20200214