ForgeComponentes
es

Componentes

j-PermissionsOP

jComponent 20 · jcomponent@20 component

El componente edita los permisos de usuarios, roles y grupos de OpenPlatform. Vincula los permisos seleccionados a una ruta del modelo y configura los endpoints find y read. El modelo contiene cadenas de permisos:

['C@admin', 'U@admin', 'R@admin', 'D@admin', 'R123456', 'R#employees']
  • la primera letra significa tipo permitido, definido en types
  • @admin significa un rol admin
  • #employees significa un grupo employees
  • 123456 significa un userid específico

Configuración:

  • placeholder {String} un marcador de posición para el componente j-Directory (predeterminado: Search)
  • types {String} tipos de permiso (matriz delimitada por caracteres, predeterminado: CRUD)
  • disabled {Booleano} opcional, desactiva este componente
  • default {String} valor predeterminado de type (predeterminado: R)
  • dirkey {String} opcional, una clave para texto en j-Directory (predeterminado: name)
  • labelrole {String} opcional una etiqueta para roles (predeterminado: Role)
  • labelgroup {String} opcional una etiqueta para grupos (predeterminado: Group)
  • limit {Número} un recuento de permisos permitidos (predeterminado: 0 = ilimitado)
  • pk {String} una clave principal cuyo valor se vinculará al modelo (predeterminado: id)
  • IMPORTANTE find {String} Dirección URL para buscar roles, grupos y usuarios, el componente envía url?q=SEARCH_QUERY (envía valor vacío)
  • IMPORTANTE read {String} Dirección URL para lectura de roles, grupos y usuarios, el componente envía 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>

Declara j-Directory para el menú de selección. Ambos endpoints devuelven un array de objetos con las propiedades de texto id y name. El endpoint find recibe el texto de búsqueda en q. El endpoint read recibe identificadores separados por comas en id y resuelve los permisos que ya están en el modelo. Utiliza pk para elegir el campo identificador; su valor predeterminado es id. Los identificadores de roles llevan el prefijo @ y los de grupos, #.

Fuente: Total.js componentes. Copyright Peter Širka y colaboradores. Licencia MIT.