ti-enxame.com

Filtrando os grupos de usuários carregados em com_config

Seguindo o meu post anterior , tentando tornar o carregamento do componente de configuração mais leve. Como a maioria dos meus grupos de usuários são filhos do grupo de usuários registrado e herdam as mesmas permissões, não preciso que eles sejam carregados no com_config.

Como solução alternativa, estou procurando uma maneira de filtrá-los, invadindo o código principal. Eu tentei com um onde na função getUserGroups() em: /administrator/components/com_config/models/fields/filters.php, Bem como em

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

A função tornou-se como:

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

Mas essas alterações parecem não ter efeito no carregamento de grupos do com_config. Fiz a mesma alteração em /libraries/joomla/form/fields/rules.php E isso filtra esses grupos. Mas eu tenho medo de que isso possa agir globalmente no que os u.groups Joomla verão, afetando alguns dos componentes que eu preciso para ver esses u.groups.

A princípio, por que o hack na função com_config getUsergroups() não tem efeito? O que devo fazer para conseguir minha filtragem lá? Em segundo lugar, estou certo ao considerar que minha segunda modificação ocultará esses u.groups de todos os lugares no Joomla?

1
FFrewin

Acabei invadindo o rules.php dentro:

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

Como está documentado dentro do arquivo, esta é uma classe de formulário para atribuir permissões a grupos para um determinado ativo.

A getUserGroups() no com_config parece não fazer nada para o carregamento de grupos de permissões, mas é usada para os grupos na seção de filtros (obviamente).

Ao verificar com_users, ainda consigo ver meus grupos de usuários extras e provavelmente ainda terei o acesso necessário para minhas outras necessidades.

Portanto, no meu caso, esse pequeno hack do núcleo vai me manter em funcionamento, até o Joomla sair com uma solução melhor. Claro que não é sustentável e eu devo refazê-lo manualmente após qualquer atualização.

0
FFrewin