Ergebnis 1 bis 8 von 8

Thema: Backend idiotensicherer machen: Buttons per CSS verstecken

  1. #1
    Contao-Nutzer
    Registriert seit
    16.05.2011.
    Ort
    Passau
    Beiträge
    11

    Frage Backend idiotensicherer machen: Buttons per CSS verstecken

    Hallo zusammen,

    ich arbeite gerade an einer Contao 3.5 Website mit verschiedenen Benutzergruppen im Backend.

    Jede Benutzergruppe soll im Backend auf genau eine Seite mit genau einem Artikel zugreifen.
    Inhalt des Artikels ist ein Akkordeon (Umschlag Beginn und Ende), das wiederum einzelne Download-Elemente umfasst. Mit den Boardmitteln der Rechteverwaltung sowie der ce_access Erweiterung soweit kein Problem.

    Beim Erstellen von Download-Elementen taucht immer wieder das Problem auf, dass die neuen Downloads nicht innerhalb des Akkordeon sondern davor oder danach angelegt werden.

    Es sei hinzugefügt, dass die Backend-User vorwiegend technisch nur bedingt versierte Herrschaften sind.
    Einfache Erklärungen zur Position von neuen Downloads bzw. dazu, welche Buttons nicht zu verwenden sind, fruchten nur bedingt. Durch die 4 Möglichkeiten, ein neues Element anzulegen, wird es um so verwirrender.
    neues-element---buttons.png

    Idee: Wenn es nicht um Sicherheit sondern um Usability geht, könnte man bestimmte Buttons im Backend einfach per CSS für bestimmte User/Usergruppen ausblenden. So könnte man in vielen Situationen den Workflow insofern vereinfachen, als dass es für eine Aktion nur genau einen Link/Button gibt.

    Voraussetzung: entsprechende class-Attribute, worüber die Buttons und Links im Stylesheet des Backend Themes adressiert werden können.

    Meine aktuelle Behelfslösung sieht so aus, dass ich den hardgecodeten Links in der Datei DC_Table.php eine Klasse (Artikel-Id, Ids der Benutzergruppen, Linkbezeichnung) verpasse.

    PHP-Code:
                //* Zusatz LKM 28.4.2016, class-Attribut zu Link "Neues Element oben erstellen" hinzufügen
                
    $objUser BackendUser::getInstance();
                
    $gruppen 'ug'.implode(' ug',$objUser->groups);
                
    $klasse 'class="addElTop id'.$this->intId.' '.$gruppen.'"';
                
    //* Ende Zusatz 
    Hardcoden im Core ist natürlich alles andere als ideal.
    Ich habe auch keine Hooks oder Callbacks gefunden, die sich für dieses Vorhaben angeboten hätten.
    Gibt es dazu evt Alternativideen? Wie löst ihr sowas?

    Gruß,
    Lukas

  2. #2
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    1. Nichts im Core zu verändern ist eigentlich Pflicht
    2. Es sind genug CSS-Klassen und IDs vorhanden um die entsprechenden Elemente zu greifen.

    Du kannst bestimmten Gruppen eine zusätzliche CSS-Datei ins BE beamen

    PHP-Code:
    <?php

    // system/config/initconfig.php

    if(TL_MODE == 'BE' && \BackendUser::getInstance()->isMemberOf(42))
    {
      
    $GLOBALS['TL_CSS'][] = 'files/css/_my-editor-be.css';
    }
    Dann etwas CSS
    PHP-Code:
    /** files/css/_my-editor-be.css */
    body {
      
    backgroundcornflowerblue !important;
    }
    a.header_new,
    .
    tl_header a[href*='act=create'],
    .
    wrapper_start,
    .
    wrapper_stop {
      
    displaynone !important;

    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  3. #3
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.839
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Artikel ist zwar schon älter, aber ich bin gerade beim Testen darüber gestolpert, dass es

    Code:
    if(TL_MODE == 'BE' && \BackendUser::getInstance()->authenticate() && \BackendUser::getInstance()->isMemberOf(42))
    {
      $GLOBALS['TL_CSS'][] = 'files/_my-editor-be.css';
    }
    heißen muß, wie @Spooky in einem anderen Thread erklärt hat. https://community.contao.org/de/show...l=1#post420974
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  4. #4
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    @Spooky: Warum muss man da vorher ein authenticate() ausführen? Zumal es ja auch ohne funktioniert.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  5. #5
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.839
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Bei mir hatte es in Contao 3.5 ohne die Änderung von @Spooky nicht funktioniert.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  6. #6
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Mmh, ich finde dies mehrfach bei mir in diversen Templates. Kann mir nicht vorstellen, dass ich dies nicht getestet hatte. Keine Ahnung, evtl. kommt ja von Spooky noch ne Erklärung. Ich frage mal in dem von dir referenzierten Thread.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  7. #7
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Habe es gerade nochmal getestet in meiner 3.5.35. Funktioniert einwandfrei über die initconfig.php wie oben in #2 gezeigt.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  8. #8
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.839
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Werde ich mir dann auch noch mal interessehalber anschauen. Mein Ausgangspunkt war dieser Thread. Da es nicht funktioniert hat, habe ich weiter gesucht und den verlinkten Thread mit Spookys Antwort und Erklärung gefunden, meinen Code entsprechend abgeändert und funktionierte auf Anhieb.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




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
  •