Ergebnis 1 bis 3 von 3

Thema: [gelöst] Benutzerzugriff auf bestimmte Mitgliedergruppe beschränken (tl_member)

  1. #1
    Contao-Nutzer
    Registriert seit
    12.11.2010.
    Beiträge
    178

    Frage [gelöst] Benutzerzugriff auf bestimmte Mitgliedergruppe beschränken (tl_member)

    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

  2. #2
    Contao-Nutzer
    Registriert seit
    12.11.2010.
    Beiträge
    178

    Standard Core Hack

    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:

    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\"%'";
        }

    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…

    Viele Grüße,
    JaiBee

  3. #3
    Contao-Nutzer
    Registriert seit
    12.11.2010.
    Beiträge
    178

    Standard Updatesichere Lösung

    Habe nun doch noch eine technisch saubere Lösung gefunden:

    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;

    Viele Grüße,
    JaiBee

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •