it-swarm.dev

Filtraggio dei gruppi utenti caricati in com_config

Seguendo il mio post precedente , provando a rendere più leggero il carico del componente di configurazione. Dal momento che la maggior parte dei miei gruppi utenti sono figli del gruppo utenti registrato ed ereditano le stesse autorizzazioni, non ho bisogno che vengano caricati in com_config.

Come soluzione alternativa, sto cercando un modo per filtrarli, hackerando il codice principale. Ho provato con un dove nella funzione getUserGroups() in: /administrator/components/com_config/models/fields/filters.php, E anche in

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

La funzione è diventata come:

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

Ma queste modifiche sembrano non avere alcun effetto nel caricamento dei gruppi di com_config. Ho fatto la stessa modifica in /libraries/joomla/form/fields/rules.php E questo filtra questi gruppi. Ma temo che questo potrebbe agire a livello globale in ciò che vedrà Joomla, influenzando alcuni dei componenti di cui ho bisogno per vedere quei gruppi.

Inizialmente, perché l'hacking sulla funzione com_config getUsergroups() non ha alcun effetto? Cosa devo fare per ottenere il mio filtro lì? In secondo luogo, ho ragione a considerare che la mia seconda modifica nasconderà quei gruppi di u ovunque in Joomla?

1
FFrewin

Ho finito per hackerare le regole.php all'interno:

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

Come è documentato all'interno del file, questa è una classe di modulo per l'assegnazione delle autorizzazioni ai gruppi per una determinata risorsa.

getUserGroups() in com_config sembra non fare nulla per il caricamento dei gruppi di autorizzazioni, ma viene utilizzato per i gruppi nella sezione filtri (ovviamente).

Controllando com_users, posso ancora vedere i miei gruppi di utenti extra e probabilmente avrò ancora l'accesso richiesto per le mie altre esigenze.

Quindi nel mio caso, questo piccolo hack core mi farà andare avanti, fino a quando Joomla non uscirà con una soluzione migliore. Naturalmente non è gestibile e dovrei rifarlo manualmente dopo eventuali aggiornamenti.

0
FFrewin