it-swarm-tr.com

Com_config dosyasına yüklenen kullanıcı gruplarını filtreleme

önceki yazım 'dan sonra, config bileşeninin yükünü hafifletmeye çalışıyorum. Kullanıcı gruplarımın çoğunluğu kayıtlı kullanıcı grubunun çocukları olduğundan ve aynı izinleri devraldığından, com_config dosyasına yüklenmeleri için onlara ihtiyacım yok.

Bir çözüm olarak, çekirdek kodu hackleyerek filtrelemek için bir yol arıyorum. getUserGroups() fonksiyonunda bir yerde denedim: /administrator/components/com_config/models/fields/filters.php

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

İşlev şöyle oldu:

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

Ancak bu değişikliklerin com_config grubunun yüklenmesinde bir etkisi yok gibi görünüyor. Aynı değişikliği /libraries/joomla/form/fields/rules.php 'Da yaptım ve bu da bu grupları filtreledi. Ancak bunun u.groups Joomla'nın göreceği şeyde küresel olarak hareket edebileceğinden korkuyorum ve bu u.groups'u görmem gereken bazı bileşenleri etkiliyor.

İlk başta, com_config getUsergroups() işlevindeki saldırıların neden bir etkisi yoktur? Orada filtrelememi gerçekleştirmek için ne yapmalıyım? İkincisi, ikinci modifikasyonumun bu u.gruplarını Joomla'nın her yerinden gizleyeceğini düşünmek doğru muyum?

1
FFrewin

İçinde kuralları hapsederek sona erdim.

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

Dosyanın içinde belgelendiği için, bu, belirli bir varlık için gruplara izin atamak için bir form sınıfıdır.

Com_config dosyasındaki getUserGroups(), izin grupları yüklemesi için hiçbir şey yapmıyor gibi görünüyor, ancak filtreler bölümündeki (açıkça) gruplar için kullanılıyor.

Com_users içinde kontrol ederken, hala ekstra kullanıcı gruplarını görebiliyorum ve muhtemelen diğer ihtiyaçlarım için gerekli erişime sahip olacağım.

Benim durumumda, bu küçük çekirdek kesmek beni Joomla daha iyi bir çözümle çıkana kadar devam ettirecek. Tabii ki bakımı mümkün değil, bunu herhangi bir güncellemeden sonra manuel olarak tekrar yapmalıyım.

0
FFrewin