Hallo,
ein Benutzers soll in der Mitgliederliste lediglich die Mitglieder einer bestimmten Gruppe sehen können. Wie lässt sich das umsetzen?
Viele Grüße
JaiBee
Hallo,
ein Benutzers soll in der Mitgliederliste lediglich die Mitglieder einer bestimmten Gruppe sehen können. Wie lässt sich das umsetzen?
Viele Grüße
JaiBee
Geändert von JaiBee (19.04.2012 um 17:22 Uhr) Grund: gelöst
Bin mittlerweile etwas weitergekommen:
Mit folgendem Code in der Datei '/system/drivers/DC_Table.php' nach Zeile 3701 werden allen Benutzern aus Benutzergruppe 3 nur noch die Mitglieder aus Mitgliedergruppe 4 angezeigt:
Natürlich ist das nicht updatesicher und ich bin weiterhin an einer etwas saubereren Lösung interessiert. Wenn ich schon an Core-Dateien herumhacken muss, dann doch lieber im modules-Verzeichnis…PHP-Code:
// only show members of specified group
// for users of specified user group
if ($this->strTable == 'tl_member')
{
$this->import('BackendUser', 'User');
// if user is member of _user_ group 3
if (in_array("3",$this->User->groups))
{
// only list members of _member_ group 4
$this->procedure[] = "groups LIKE '%\"4\"%'";
}
}
Viele Grüße,
JaiBee
Habe nun doch noch eine technisch saubere Lösung gefunden:
Viele Grüße,PHP-Code:
// /system/config/dcaconfig.php
$this->import('BackendUser', 'User');
if (in_array("3",$this->User->groups)){
// add custom filter
// Filter hinzufügen
$GLOBALS['TL_DCA']['tl_member']['list']['sorting']['filter'] = array(array('groups LIKE ?', '%\"4\"%'));
// disable group filter by what user cannot change member group
// Gruppen-Filter deaktivieren, wodurch der Benutzer nicht die Mitgliedergruppe ändern kann
$GLOBALS['TL_DCA']['tl_member']['fields']['groups']['filter'] = false;
}
JaiBee
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen