new PermissionManager()
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 PermissionManager.getInstance.
Methods
-
<static> getInstance()
-
Retorna a instância global do PermissionManager compartilhada com toda a sessão.
Returns:
- Type
- PermissionManager
-
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, sem serão copiadas permissões com herança ou definidas para Papéis.
Parameters:
Name Type Argument Description keys
Array.<Number> Chaves dos arquivos ou classes para criar as permissões na hierarquia.
opt_groupUsers
Array.<Number> <optional>
Grupos, papéis e usuários que terão as permissões herdadas.
Returns:
Registros de permissões novas para os diretórios e arquivos.
- Type
- DataSet
-
copyPermissions(source, target [, opt_options])
-
Copia permissões de um usuário, grupo ou papel para outro usuário, grupo ou papel.
Parameters:
Name Type Argument Description source
number Chave de um usuário, grupo ou papel que será a fonte da cópia.
target
number Chave de um usuário, grupo ou papel que será o destino da cópia.
opt_options
Object <optional>
Opções para a cópia.
Properties
Name Type Argument Description mergeAction
string <optional>
Quando se copia permissões, haverá momentos em que existe 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.
copyMode
string <optional>
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:
Versão das alterações. Retornará 0 caso não haja alterações.
- Type
- number
-
fixClasses()
-
Garante que todos os registros da tabela de permissões possuem a classe preenchida com a classe /Dados/Sistema/Permissões (-1898187812).
-
fixInheritance( [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:
Name Type Argument Description options
Object <optional>
Opções do ajuste das permissões herdadas.
Properties
Name Type Argument Description transaction
Transaction <optional>
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
Array.<number> <optional>
Chaves de arquivos ou diretórios que devem ter as permissões herdadas ajustadas.
ignoredKeys
Array.<number> <optional>
Chaves das permissões que não devem ser modificadas por este método. Pode ser utilizado para indicar as chaves que foram removidas ou alteradas previamente para evitar conflito na atualização.
Returns:
Versão das alterações caso não seja informado transaction nas opções ou null no caso contrário.
- Type
- number
-
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 com a chave e versão dos arquivos órfãos.
- Type
- DataSet
-
insert(assignment)
-
Adiciona uma atribuição de permissões no sistema.
Parameters:
Name Type Description assignment
PermissionAssignment Permissões que deverão ser inseridas.
Returns:
Versão das alterações realizadas no banco de dados ou zero caso não tenha ocorrida nenhuma.
- Type
- 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:
Name Type Description key
number Chave da permissão que será atualizada.
Returns:
Versão das alterações realizadas no banco de dados ou zero caso não tenha ocorrida nenhuma.
- Type
- 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:
Versão da exclusão das permissões órfãs.
- Type
- 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:
Name Type Description key
number Chave da permissão da qual deseja-se replicar as informações para as suas descendentes.
Returns:
Versão das alterações realizadas no banco de dados ou zero caso não tenha ocorrida nenhuma.
- Type
- number
-
update(key, assignment)
-
Atualiza um registro de permissão existente com os valores informados.
Parameters:
Name Type Description key
number Chave da permissão que será atualizada.
assignment
PermissionAssignment Permissões que deverão ser inseridas.
Returns:
Versão das alterações realizadas no banco de dados ou zero caso não tenha ocorrida nenhuma.
- Type
- number