it-swarm-es.tech

Filtrando los grupos de usuarios cargados en com_config

Siguiendo mi publicación anterior , tratando de hacer que la carga del componente de configuración sea más ligera. Como la mayoría de mis grupos de usuarios son hijos del grupo de usuarios registrados y heredan los mismos permisos, no necesito que se carguen en com_config.

Como solución alternativa, estoy buscando una forma de filtrarlos, pirateando el código central. Intenté con un where en la función getUserGroups() en: /administrator/components/com_config/models/fields/filters.php, También en

`/administrator/components/com_config/model/fields/filters.php` .

La función se convirtió en:

protected function getUserGroups()
    {
        // Get a database object.
        $db = JFactory::getDBO();
        // Get the user groups from the database.
        $query = $db->getQuery(true);
        $query->select('a.id AS value, a.title AS text, COUNT(DISTINCT b.id) AS level');
        $query->from('#__usergroups AS a');
        $query->join('LEFT', '#__usergroups AS b on a.lft > b.lft AND a.rgt < b.rgt');
        $query->where('a.parent_id != 2');
        $query->group('a.id, a.title, a.lft');
        $query->order('a.lft ASC');
        $db->setQuery($query);
        $options = $db->loadObjectList();
        return $options;
    }

Pero estos cambios parecen no tener efecto en la carga de grupos de com_config. Hice el mismo cambio en /libraries/joomla/form/fields/rules.php, Y esto filtra esos grupos. Pero me temo que esto podría actuar globalmente en lo que u.groups verá Joomla, afectando algunos de los componentes que necesito para ver esos u.groups.

Al principio, ¿por qué el hack en la función com_config getUsergroups() no tiene ningún efecto? ¿Qué debo hacer para lograr mi filtrado allí? En segundo lugar, ¿tengo razón al considerar que mi segunda modificación ocultará esos grupos u de todas partes en Joomla?

1
FFrewin

Terminé pirateando las reglas.php dentro:

/libraries/joomla/form/fields/rules.php

Como está documentado dentro del archivo, esta es una clase de formulario para asignar permisos a grupos para un activo determinado.

La getUserGroups() en com_config parece no hacer nada para cargar los grupos de permisos, pero se usa para los grupos en la sección de filtros (obviamente).

Al registrar com_users, aún puedo ver mis grupos de usuarios adicionales y probablemente aún tendré el acceso requerido para mis otras necesidades.

Entonces, en mi caso, este pequeño truco central me mantendrá en marcha, hasta que Joomla salga con una mejor solución. Por supuesto, no es mantenible y debería volver a hacer esto manualmente después de cualquier actualización.

0
FFrewin