it-swarm-id.com

Memfilter grup pengguna yang dimuat di com_config

Mengikuti postingan saya sebelumnya , mencoba menjadikan beban komponen config lebih ringan. Karena sebagian besar grup pengguna saya adalah anak-anak dari grup pengguna terdaftar dan mewarisi izin yang sama, saya tidak perlu mereka dimuat di com_config.

Sebagai solusinya, saya mencari cara untuk memfilternya, dengan meretas kode inti. Saya mencoba di mana di fungsi getUserGroups() di: /administrator/components/com_config/models/fields/filters.php, Juga di

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

Fungsi menjadi seperti:

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

Tetapi perubahan ini tampaknya tidak berpengaruh pada pemuatan grup dari com_config. Saya melakukan perubahan yang sama pada /libraries/joomla/form/fields/rules.php, Dan ini memfilter grup-grup itu. Tetapi saya khawatir ini akan bertindak secara global dalam apa yang akan dilihat oleh grup Joomla, mempengaruhi beberapa komponen yang perlu saya lihat dari grup tersebut.

Pada awalnya, mengapa peretasan pada fungsi com_config getUsergroups() tidak berpengaruh? Apa yang harus saya lakukan untuk mencapai pemfilteran di sana? Kedua, saya benar untuk mempertimbangkan bahwa modifikasi kedua saya akan menyembunyikan u.groups dari mana saja di Joomla?

1
FFrewin

Saya berakhir dengan meretas aturan.php di dalam:

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

Seperti yang didokumentasikan di dalam file, ini adalah kelas formulir untuk menetapkan izin ke grup untuk aset tertentu.

getUserGroups() di com_config tampaknya tidak melakukan apa pun untuk memuat grup izin, tetapi digunakan untuk grup di bagian filter (jelas).

Memeriksa di com_users, saya masih dapat melihat grup pengguna tambahan saya dan mungkin saya masih akan memiliki akses yang diperlukan untuk kebutuhan saya yang lain.

Jadi dalam kasus saya, peretasan inti kecil ini akan membuat saya terus berjalan, sampai Joomla keluar dengan solusi yang lebih baik. Tentu saja itu tidak dapat dipertahankan dan saya harus melakukan ini secara manual setelah pembaruan.

0
FFrewin