Class: PermissionSchema

@nginstack/engine/lib/security/PermissionSchema~ PermissionSchema


new PermissionSchema()

Classe responsável pela consulta do esquema da tabela de permissões para as classes de dados do sistema.

Em vez de construir essa classe diretamente, utilize o método PermissionSchema.getInstance.

Members


<static, constant> INHERITANCE_FIELDS :Array.<string>

Campos da tabela de permissões que controlam a herança de permissões. Por convenção, os nomes dos campos serão em letras minúsculas.

Type:
  • Array.<string>

<static, constant> PERIOD_FIELDS :Array.<string>

Campos da tabela de permissões utilizados para indicar a vigência das permissões. Por convenção, os nomes dos campos serão em letras minúsculas.

Type:
  • Array.<string>

<static, constant> TARGET_FIELDS :Array.<string>

Campos da tabela de permissões que indicam em quem as permissões serão aplicadas. Por convenção, os nomes dos campos serão em letras minúsculas.

Type:
  • Array.<string>

Methods


<static> getInstance()

Retorna a instância global do PermissionSchema compartilhada com toda a sessão.

Returns:
Type
PermissionSchema

getChildrenReplicatedFieldNames()

Obtém os nomes dos campos que são replicados para as classes e arquivos filhos quando há herança de permissões ou quando o usuário solicita a replicação manual de permissões.

Os campos replicados são configurados por meio da propriedade childrenReplicationFieldNames nos arquivos x-model da classe /Dados/Sistema/Permissões (-1898187812).

Returns:

Nomes dos campos que devem ser replicados.

Type
Array.<string>

getDeclaredFieldsByClass(rootClass [, opt_options])

Mapeia de modo distinto todos os campos de permissão, utilizando a chave da classe raiz do escopo como chave. Os nomes dos campos são normalizados em letras minúsculas.

Parameters:
Name Type Argument Description
rootClass number

Classe raiz da qual será montado o mapa.

opt_options Object | Record.<*, *> <optional>

Opções na obtenção da relação de campos:

  • includeNonDatabaseFields: também inclui na relação de campos não existentes na tabela iPermission, como os campos calculados e grades detalhes declarados no modelo de dados.
Returns:
Type
Object.<Array.<string>>

getDeclaredFieldsInClass(classKey [, opt_options])

Busca os nomes de campos de permissão que foram declarados inicialmente na classe de dados informada. Não serão retornados os campos de permissão herdados da classe-mãe. Os nomes dos campos são normalizados em letras minúsculas.

Parameters:
Name Type Argument Description
classKey number

Chave da classe ao qual se quer obter os nomes dos campos de permissão relacionados.

opt_options Object | Record.<*, *> <optional>

Opções na obtenção da relação de campos:

  • includeNonDatabaseFields: também inclui na relação de campos não existentes na tabela iPermission, como os campos calculados e grades detalhes declarados no modelo de dados.
Returns:

Nomes dos campos de permissão.

Type
Array.<string>

getExtraFiltersForClass(classKey)

Indica quais os nomes dos campos da tabela de permissões são visíveis e configurados como filtros extras para a classe de dados informada. Os nomes são padronizados em letras minúsculas.

Importante: os campos retornados são da tabela de permissões, não são da tabela de dados associada a classe informada. Para obter os campos da classe informada que se relacionam com os campos da tabela de permissão, verifique a propriedade module:@nginstack/engine/lib/classdef/Field~Field#permissionFilterFieldName dos campos da classe.

Parameters:
Name Type Description
classKey number

Classe de dados para a qual serão consultados os filtros extras.

Returns:

Nomes dos campos configurados como filtros extra da tabela de permissões.

Type
Array.<string>

getFieldsByClass(rootClass [, opt_options])

Mapeia todos os campos de permissão, utilizando a chave da classe raiz do escopo como chave. Os nomes dos campos são normalizados em letras minúsculas.

Parameters:
Name Type Argument Description
rootClass number

Classe raiz da qual será montado o mapa.

opt_options Object | Record.<*, *> <optional>

Opções na obtenção da relação de campos:

  • includeNonDatabaseFields: também inclui na relação de campos não existentes na tabela iPermission, como os campos calculados e grades detalhes declarados no modelo de dados.
Returns:
Type
Object.<Array.<string>>

getFieldsForClass(classKey [, opt_options])

Busca os nomes de campos de permissão para uma classe. Os nomes dos campos são normalizados em letras minúsculas.

Parameters:
Name Type Argument Description
classKey number

Chave da classe ao qual se quer obter os nomes dos campos de permissão relacionados.

opt_options Object | Record.<*, *> <optional>

Opções na obtenção da relação de campos:

  • includeNonDatabaseFields: também inclui na relação de campos não existentes na tabela iPermission, como os campos calculados e grades detalhes declarados no modelo de dados.
Returns:

Nomes dos campos de permissão.

Type
Array.<string>

getFieldsForFile(fileKey [, opt_options])

Busca os nomes dos campos de permissão para um arquivo. Os nomes dos campos são normalizados em letras minúsculas.

Parameters:
Name Type Argument Description
fileKey number

Chave do arquivo ao qual se quer obter os nomes dos campos de permissão que estão relacionados.

opt_options Object | Record.<*, *> <optional>

Opções na obtenção da relação de campos:

  • includeNonDatabaseFields: também inclui na relação de campos não existentes na tabela iPermission, como os campos calculados e grades detalhes declarados no modelo de dados.
Returns:

Nomes dos campos de permissão.

Type
Array.<string>

getParentReplicatedFieldNames()

Obtém os nomes dos campos que são replicados automaticamente para as classes ancestrais quando o usuário altera a permissão de um grupo, papel ou usuário.

Por exemplo, a permissão "Ver" é uma permissão replicada automaticamente, pois um usuário não poderá ver os dados de uma determinada classe de dados se também não tiver permissão de visão nas classes mãe.

Os campos replicados são configurados por meio da propriedade replicatedPermissionFieldNames nos arquivos x-model da classe /Dados/Sistema/Permissões (-1898187812).

Returns:

Nomes dos campos que devem ser replicados.

Type
Array.<string>

mountTabularMap(permissionFields, classKey, userKey [, opt_filters])

Monta o mapa de permissões de um usuário partindo de uma classe para as suas filhas.

Parameters:
Name Type Argument Description
permissionFields Array.<string>

Nomes dos campos de permissão ligados à classe.

classKey number

Classe que servirá de base para a pesquisa.

userKey number

Chave do usuário que terá suas permissões mapeadas.

opt_filters Object <optional>

Filtros que podem ser repassados para o DataSet.

Properties
Name Type Argument Description
licenses Array.<number> | number

Licenças que serão exibidas nesta montagem.

hideNotVisibleClasses boolean

Retira do resultado todas as classes as quais o usuário não pode visualizar.

justProducts boolean <optional>

Retira do resultado todas as classes positivas. Ou seja, serão exibidas apenas as chaves de produtos, incluindo o Custom.

Returns:

Relação da própria classe e suas descendentes com as permissões. Este DataSet vem organizado desta maneira: iKey {number} Chave da classe; iParent {number} Mãe da classe (Virá nulo quando for a classe raiz); iName {string} Nome da classe; iOrder {string} Ordem de exibição das classes. Esse campo virá no formato: "0001/0006" o que significa que essa classe é a sexta filha da primeira classe. O DataSet vem ordenado por este campo. (Um campo para cada permissão contendo o seu valor.) iEqualDescendants {boolean} Indica se os descendentes desta classe possuem a mesma permissão que ela própria.

Type
DataSet