Class: PermissionReplicator

@nginstack/engine/lib/security/PermissionReplicator~ PermissionReplicator


new PermissionReplicator()

Classe que encapsula as funcionalidades referentes as permissões, tais como:

  • cópia de permissões entre grupos/usuários;
  • replicação de permissões de uma classe/grupo/usuário para as classes-filhas;
  • ajustes nas permissões da classes filhas e mães após a inserção, exclusão e/ou edição de permissões.

Esta classe foi mantida apenas para garantir a compatibilidade com a classe global Permission. Ela não mantém corretamente as permissões com herança e não deveria ser mais utilizada.

Deprecated:

Members


automaticApplyUpdates :boolean

Indica se, ao final de cada método chamado, as alterações realizadas devem ser gravadas no banco de dados.

Type:
  • boolean

iPermission :DataSet

Espelho das permissões. As alterações das permissões devem ser realizadas neste dataset.

Type:

modifiedRecords :Object

Armazena as chaves alteradas através das seguintes propriedades do tipo array: insertedKeys, updatedKeys e deletedKeys.

Type:
  • Object

Methods


_getReplicatedField()

Retorna os campos que podem ser replicados para a classe de permissão informada.


clearModifiedRecords()

Limpa as chaves armazenadas pela propriedade modifiedRecords.


copyGroupUser(fromGroupUser, toGroupUser [, parents] [, fieldNames])

Copia as permissões de um grupo/usuário para outro grupo/usuário.

Parameters:
Name Type Argument Description
fromGroupUser number

Chave do grupo/usuário do qual se deseja copiar as permissões.

toGroupUser number

Chave do grupo/usuário destino das cópias de permissões.

parents Array.<number> <optional>

Lista de chaves de classes e/ou registros da iVfs cujas permissões devem ser copiadas. Caso não seja informada, todas as classes e registros da iVfs serão copiados.

fieldNames Array.<string> <optional>

Lista de nomes dos campos de permissão a ser copiados. Caso não seja informada todos os campos serão copiados.

Returns:
Type
Object | * | Object

replicate(permissions)

Ajusta as permissões inseridas, excluídas e/ou editadas replicando estas alterações nas classes-mães e classes-filhas das classes/vfs alvos das permissões.

Parameters:
Name Type Description
permissions Array.<number>

Chaves das permissões incluídas, excluídas e/ou editadas as quais se deseja replicar estas alterações nas classes-mães e classes-filhas.

Returns:
Type
Object
Example
var permission = new Permission();
 ...
 // Ajusta a exclusão da permissão do grupo "Developers" na classe "Clientes".
 // O grupo "Developers" não terá acesso as classes-filhas de "Clientes".
 permission.iPermission.indexFieldNames = 'iParent;iGroupUser';
 permission.iPermission.find( [ -2007889000, -1898186562 ] );

 var permissions = [ this.permission.iPermission.ikey ];
 permission.iPermission.del();

 permission.replicate( permissions );
 ...
 // Ajusta a inclusão da permissão do grupo "Developers" na classe "Locais de Escrituração".
 // O grupo "Developers" terá poderá ver, alterar e inserir registros nas classes-mães
 // de "Locais de Escrituração".
 permission.iPermission.append();
 permission.iPermission.iclass     = -1898187812 // Permissions
 permission.iPermission.iparent    = -1899998809;
 permission.iPermission.igroupuser = -1898186562;
 permission.iPermission.iview      = 'T';
 permission.iPermission.iinsert    = 'T';
 permission.iPermission.ichange    = 'T';
 permission.iPermission.post();
 var permissions = [ permission.iPermission.ikey ];

 permission.replicate( permissions );
 ...
 // Ajusta a edição da permissão do grupo "Developers" na classe "Locais de Escrituração".
 // O grupo "Developers" não poderá alterar e inserir registros na classe
 // "Locais de Escrituração" e em suas classes-filhas.
 permission.iPermission.indexFieldNames = 'iParent;iGroupUser';
 permission.iPermission.find( [ -1899998809, -1898186562 ] );
 permission.iPermission.ichange = null;
 permission.iPermission.iinsert = null;

 var permissions = [ permission.iPermission.ikey ];
 permission.iPermission.post();

 permission.replicate( permissions );

replicateToChildren(parent, permissions)

Replica as permissões da classe informada em suas classes-filhas. Quando as permissões não forem informadas, todas as permissões definidas para a classe informada serão replicadas.

Parameters:
Name Type Description
parent number

Chave do grupo/usuário do qual se deseja replicar as permissões.

permissions Array.<number>

Chaves das permissões as quais se deseja replicar. Quando não informada, o método replicará todas as permissões definidas para a classe informada.

Returns:
Type
Object