ForgeComponentes
pt

Componentes

j-PermissionsOP

jComponent 20 · jcomponent@20 component

O componente edita permissões de utilizadores, funções e grupos do OpenPlatform. Associe as permissões selecionadas a um caminho do modelo e configure os endpoints find e read. O modelo contém cadeias de permissões:

['C@admin', 'U@admin', 'R@admin', 'D@admin', 'R123456', 'R#employees']
  • A primeira letra significa tipo permitido, definido em types
  • @admin significa um papel de admin
  • #employees significa um grupo de employees
  • 123456 significa um userid específico

Configuração:

  • placeholder {String} um alojamento para o componente j-Directory (default: Search)
  • types {String} tipos de permissão (array delimitado por char, padrão: CRUD)
  • disabled {Boolean} opcional, desabilita este componente
  • default {String} valor padrão de type (default: R)
  • dirkey {String} opcional, uma chave para texto em j-Directory (default: name)
  • labelrole {String} opcional um rótulo para roles (default: Role)
  • labelgroup {String} opcional uma etiqueta para grupos (default: Group)
  • limit {Número} um número de permissões permitidas (default: 0 = ilimitado)
  • pk {String} uma chave primária cujo valor será ligado ao modelo (default: id)
  • IMPORTANT find {String} URL para encontrar papéis, grupos e usuários, o componente envia url?q=SEARCH_QUERY (envia valor vazio)
  • IMPORTANT read {String} URL para rolos de leitura, grupos e usuários, o componente envia url?id=@role,#group,userid,...
// The component expects data:
['C@admin', 'U@admin', 'R@admin', 'D@admin', 'R123456', 'R#employees'];

// The component tries to find data:
// The component tries to read data and it pairs them with the model automatically:
[{ id: '123456', name: 'Peter Širka' }, { id: '@admin', name: 'Administrators' }, { id: '#employees', name: 'Employees' }];

Uso

<ui-component name="directory"></ui-component>
<ui-component name="permissionsop" path="form.permissions"
  config="find:/api/permissions/search/;read:/api/permissions/read/;types:CRUD"></ui-component>
<script>
  ON('request', function(request) {
    if (request.method === 'GET' && request.data &&
        request.url.indexOf('/api/permissions/') === 0) {
      request.url = QUERIFY(request.url, request.data);
      request.data = null;
    }
  });
  SET('form.permissions', ['R@admin', 'U#employees']);
</script>

Declare j-Directory para o menu de seleção. Ambos os endpoints devolvem um array de objetos com as propriedades de texto id e name. O endpoint find recebe o texto de pesquisa em q. O endpoint read recebe identificadores separados por vírgulas em id e resolve as permissões já presentes no modelo. Utilize pk para escolher o campo identificador; o valor predefinido é id. Os identificadores de funções têm o prefixo @ e os de grupos, #.

Fonte da fonte: Componentes Total.jsCopyright Peter Širka e contribuintes. A licença.