Class Index | File Index

Classes


Class ngin.permission.Manager


Defined in: manager.js.

Class Summary
Constructor Attributes Constructor Name and Description
 
Classe responsável pela gestão de permissões de grupos, papéis e usuários do sistema.
Method Summary
Method Attributes Method Name and Description
 
copyFromParent(keys, opt_groupUsers)
Cria permissões para as classes ou arquivos informados, copiando as permissões existentes das classes-mãe.
 
copyPermissions(source, target, opt_options)
Copia permissões de um usuário, grupo ou papel para outro usuário, grupo ou papel.
 
Garante que todos os registros da tabela de permissões possuem a classe preenchida com a classe /Dados/Sistema/Permissões (-1898187812).
 
fixInheritance(opt_options)
Verifica e corrige erros de integridade nas permissões com herança.
<static>  
ngin.permission.Manager.getInstance()
Retorna a instância global do ngin.permission.Manager compartilhada com toda a sessão.
 
Pega registros de permissões órfãs, ou seja, que não concedem permissão a nenhum diretório ou arquivo e que não pertencem a nenhum grupo, papel ou usuário, por motivo de exclusão.
 
getTable_(tableName)
Pega dataset do cache local com os registros de uma tabela.
 
insert(assignment)
Adiciona uma atribuição de permissões no sistema.
 
mergePermissions_(source, target, field)
Calcula o valor final de uma mesclagem de permissão.
 
remove(key)
Remove a permissão informada e todas as permissões que dependem da existência dessa permissão.
 
Remove registros de permissões órfãs, ou seja, que não concedem permissão a nenhum diretório ou arquivo e que não pertencem a nenhum grupo, papel ou usuário, por motivo de exclusão.
 
Replica os valores da permissão informada para as classes e arquivos filhos da classe associada a permissão.
 
replicateValuesToAscendants_(assignment, table)
Replica os valores informados para as classes de dados ancestrais que contém assignment.resource.
 
update(key, assignment)
Atualiza um registro de permissão existente com os valores informados.
Class Detail
ngin.permission.Manager()
Classe responsável pela gestão de permissões de grupos, papéis e usuários do sistema.
Em vez de construir essa classe diretamente, utilize o método ngin.permission.Manager.getInstance.
Method Detail
{DataSet} copyFromParent(keys, opt_groupUsers)
Cria permissões para as classes ou arquivos informados, copiando as permissões existentes das classes-mãe. Não serão copiadas as permissões caso já exista alguma permissão para a classe ou arquivo informado.
Parameters:
{Array} keys
Chaves dos arquivos ou classes para criar as permissões na hierarquia.
{Array=} opt_groupUsers
Grupos, papéis e usuários que terão as permissões herdadas.
Returns:
{DataSet} Registros de permissões novas para os diretórios e arquivos.

{number} copyPermissions(source, target, opt_options)
Copia permissões de um usuário, grupo ou papel para outro usuário, grupo ou papel.
Parameters:
{number} source
Chave de um usuário, grupo ou papel que será a fonte da cópia.
{number} target
Chave de um usuário, grupo ou papel que será o destino da cópia.
{Object=} opt_options
Opções para a cópia.
{string=} opt_options.mergeAction
Quando se copia permissões, haverão momentos em que existirão valores preenchidos nos dois lados. Neste caso esta opção pode determinar se os valores serão substituídos ou complementados. As opções de preenchimento são:
replace Todas as permissões de source serão copiadas por cima das permissões de target. Esta é a opção padrão no caso deste parâmetro vir vazio. extend Neste caso as permissões de target serão complementadas pelas contidas em source. No caso de comparação com booleanos será utilizado o operador booleano "OU", ou seja, o resultado só será falso se os dois lados forem falsos. No caso de lista de strings os valores de source serão adicionados aos valores de target, em todos os outros casos os valores contidos em target serão substituídos pelos de source.
{string=} opt_options.copyMode
Determina qual será a estratégia de cópia. As opções são:
smart Neste modo serão calculados os valores respeitando toda a hierarquia aplicada à entidade source, ou seja, todas as permissões aplicadas aos grupos e papéis de source serão passadas à target. Este é o modo padrão caso não seja especificado. hard Neste modo apenas os registros da tabela de permissões de source serão copiados para target.
Returns:
{number} Versão das alterações. Retornará 0 caso não hajam alterações.

fixClasses()
Garante que todos os registros da tabela de permissões possuem a classe preenchida com a classe /Dados/Sistema/Permissões (-1898187812).

{?number} fixInheritance(opt_options)
Verifica e corrige erros de integridade nas permissões com herança.
Após a execução deste método será garantindo que todas as classes e arquivos filhos de uma permissão com herança terão registros de permissão iguais à permissão que definiu a herança. Também serão excluídos registros de permissão herdados órfãos ou associados à permissões que não definem mais uma herança.
Parameters:
{({resources: Array|transaction: ngin.database.Transaction}|Object)=} opt_options
Opções do ajuste das permissões herdadas. Opções disponíveis:
- transaction: transação onde serão adicionadas as alterações realizadas por este método. Caso não seja informado, as alterações serão gravadas imediatamente.
- resources: chaves de arquivos ou diretórios que devem ter as permissões herdadas ajustadas.
Returns:
{?number} Versão das alterações caso não seja informado transaction nas opções ou null no caso contrário.
See:
ngin.database.Transaction

<static> {ngin.permission.Manager} ngin.permission.Manager.getInstance()
Retorna a instância global do ngin.permission.Manager compartilhada com toda a sessão.
Returns:
{ngin.permission.Manager}

{DataSet} getOrphans()
Pega registros de permissões órfãs, ou seja, que não concedem permissão a nenhum diretório ou arquivo e que não pertencem a nenhum grupo, papel ou usuário, por motivo de exclusão.
Returns:
{DataSet} DataSet com a chave e versão dos arquivos órfãos.

{!DataSet} getTable_(tableName)
Pega dataset do cache local com os registros de uma tabela.
Parameters:
{string} tableName
Nome da tabela.
Returns:
{!DataSet} Dataset com todos os registros de uma tabela do cache local.

{number} insert(assignment)
Adiciona uma atribuição de permissões no sistema.
Parameters:
{ngin.permission.Assignment} assignment
Permissões que deverão ser inseridas.
Returns:
{number} Versão das alterações realizadas no banco de dados ou zero caso não tenha ocorrida nenhuma.

{*} mergePermissions_(source, target, field)
Calcula o valor final de uma mesclagem de permissão.
Parameters:
{*} source
Valor da permissão que está se copiando.
{*} target
Valor destino da permissão que será mesclado a source.
{!ngin.classdef.PermissionField} field
Campo da classe Permissões que está sendo mesclado.
Returns:
{*} Valor mesclado para o campo.

{number} remove(key)
Remove a permissão informada e todas as permissões que dependem da existência dessa permissão.
Uma permissão será considerada dependente se estiver em de uma classe ou arquivo filho concedido para o mesmo Grupo, Papel ou Usuário e se estiver associada às classes e arquivos filhos da classe associada a permissão. Também serão consideradas dependentes as permissões herdadas a partir da permissão informada, ou seja, as permissões cujo campo iInheritedFrom seja igual à chave informada.
Caso a classe associada à permissão tenha filtros extras e eles estejam configurados, serão removidas apenas as permissões descendentes que possuam a mesma configuração de filtros extras.
Também serão removidas permissões filhas caso não haja uma outra permissão na classe associada a permission para o mesmo Grupo, Papel ou Usuário. Na prática isso significa que todas as permissões com ou sem filtros extras nas classes e arquivos filhos serão removidas se a permissão informada for a última para o Grupo, Papel ou Usuário.

Permissões herdadas não serão removidas por este método, exceto se ele for chamado para a permissão que definiu inicialmente a herança. Tentar remover os dependentes de uma permissão herdada a partir de outra permissão produzirá um erro.
Parameters:
{number} key
Chave da permissão que será atualizada.
Returns:
{number} Versão das alterações realizadas no banco de dados ou zero caso não tenha ocorrida nenhuma.

{number} removeOrphans()
Remove registros de permissões órfãs, ou seja, que não concedem permissão a nenhum diretório ou arquivo e que não pertencem a nenhum grupo, papel ou usuário, por motivo de exclusão.
Returns:
{number} Versão da exclusão das permissões órfãs.

{number} replicateToDescendants(key)
Replica os valores da permissão informada para as classes e arquivos filhos da classe associada a permissão. Serão criados registros de permissão para as classes e arquivos filhos que não tenham permissão associado ao mesmo grupo.
Caso a classe associada a key tenha filtros extras e eles estejam configurados, serão criados registros de permissão com a mesma configuração de filtros extras.
Não é permitido replicar os valores de uma permissão herdada ou que defina uma herança, pois essa replicação é automática na atualização dos valores dessa permissão.
Parameters:
{number} key
Chave da permissão da qual deseja-se replicar as informações para as suas descendentes.
Returns:
{number} Versão das alterações realizadas no banco de dados ou zero caso não tenha ocorrida nenhuma.

replicateValuesToAscendants_(assignment, table)
Replica os valores informados para as classes de dados ancestrais que contém assignment.resource. A relação dos campos que serão replicados é determinada pela propriedade replicatedPermissionFieldNames da classe de /Dados/Sistema/Permissões.
A replicação para ascendentes deve ser configurada para os campos de permissão que somente terão sentido se a classe superior tiver o mesmo valor. Um exemplo é a permissão "Ver", pois indicar que um grupo possui de permissão de visão na classe de Usuário exige que ele também tenha essa mesma permissão na classe superior (Grupos, Papéis e Usuários) caso contrário o usuário não conseguirá de fato visualizar os dados da classe Usuários.
Parameters:
{ngin.permission.Assignment} assignment
Permissões que deverão ser replicadas nas classes ancestrais.
{DataSet} table
Dados com os registros de permissões que serão atualizados.

{number} update(key, assignment)
Atualiza um registro de permissão existente com os valores informados.
Parameters:
{number} key
Chave da permissão que será atualizada.
{ngin.permission.Assignment} assignment
Permissões que deverão ser inseridas.
Returns:
{number} Versão das alterações realizadas no banco de dados ou zero caso não tenha ocorrida nenhuma.

Documentation generated by JsDoc Toolkit 2.4.0 on Tue Aug 23 2016 16:18:12 GMT-0300 (GFT)