ForgeComponente
ro

Componente

j-PermissionsOP

jComponent 20 · jcomponent@20 component

Componenta editează permisiunile utilizatorilor, rolurilor și grupurilor OpenPlatform. Asociați permisiunile selectate cu o cale a modelului și configurați endpointurile find și read. Modelul conține șiruri de permisiuni:

['C@admin', 'U@admin', 'R@admin', 'D@admin', 'R123456', 'R#employees']
  • Prima literă înseamnă tipul permis, definit în types
  • @admin înseamnă un rol admin
  • #employees înseamnă un grup de employees
  • 123456 înseamnă un anumit userid

Configurarea:

  • placeholder {String} un depozitar pentru componenta j-Directory (default: Search)
  • types {String} tipuri de permisiune (array delimited by char, default: CRUD)
  • disabled {Boolean} opțional, dezactivă acest component
  • default {String} valoarea standardă a type (default: R)
  • dirkey {String} opțional, o cheie pentru text în j-Directory (default: name)
  • labelrole {String} opțional o etichetă pentru roluri (default: Role)
  • labelgroup {String} opțional o etichetă pentru grupuri (defață: Group)
  • limit {Număr} un număr de permisiuni permise (default: 0 = nelimitat)
  • pk {String} o cheie primară a cărei valoare va fi legată la model (default: id)
  • IMPORTANT find {String} adresa URL pentru a găsi roluri, grupuri și utilizatori, componenta trimite url?q=SEARCH_QUERY (să trimită valoare goală)
  • IMPORTANT read {String} adresa URL pentru rolurile de citire, grupurile și utilizatorii, componenta trimite 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' }];

Utilizare

<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>

Declarați j-Directory pentru meniul de selecție. Ambele endpointuri returnează un array de obiecte cu proprietățile de tip șir id și name. Endpointul find primește textul căutat în q. Endpointul read primește identificatori separați prin virgule în id și încarcă permisiunile deja prezente în model. Utilizați pk pentru a alege câmpul identificator; valoarea implicită este id. Identificatorii rolurilor au prefixul @, iar cei ai grupurilor au prefixul #.

Sursă : Componente Total.jsCopyright Peter Širka și contribuitorii. Licența mea.