Ergebnis 1 bis 2 von 2

Thema: Formular - Neues Formular - Seiten-Element (include)

  1. #1
    Contao-Nutzer
    Registriert seit
    08.10.2012.
    Beiträge
    33

    Standard Formular - Neues Formular - Seiten-Element (include)

    Hallo zusammen,

    bevor ich vielleicht unnötig ein Ticket zu Contao selber auf mache, stelle ich mal die Frage in die Runde:

    Ausgangsszenario (Contao 3.2 und andere):

    - Ich gebe einer Benutzer-Gruppe das Recht Formulare anzulegen/zu löschen.
    - Der Benutzer (Redaketeur) kann über das Contao Backend ein neues Formular auch anlegen. Dies tut er auch.

    Und jetzt ist das große Problem:
    Er kann das neu erstellte Formular nicht als Include - Inhaltselement in eine Seite einsetzen, weil es dort nicht in der Liste auftaucht (Rechte-Problem!).

    Damit er das Formular auswählen kann, muss das Formular explizit bei "Erlaubte Formulare" in den Contao - Rechte-Einstellungen eingetragen werden.


    Die Folge wäre, dass er jedes mal einen Administrator-Fragen muss, damit dieser die Rechte-Einstellungen in der Gruppe anpasst und das Formular in die Liste der erlaubten Formulare aufnimmt, damit der Redakteur anschließend dieses als Content-Element verwenden kann.

    Dieses Vorgehen ist leider völlig ineffektiv und erzeugt zusätzlichen Aufwand.


    Das Problem ist in der system/modules/core/dca/tl_content.php in der Funktion getForms()

    public function getForms()
    {
    if (!$this->User->isAdmin && !is_array($this->User->forms))
    {
    return array();
    }

    $arrForms = array();
    $objForms = $this->Database->execute("SELECT id, title FROM tl_form ORDER BY title");

    while ($objForms->next())
    {
    if ($this->User->isAdmin || $this->User->hasAccess($objForms->id, 'forms'))
    {
    $arrForms[$objForms->id] = $objForms->title . ' (ID ' . $objForms->id . ')';
    }
    }

    return $arrForms;
    }


    Ich habe mir bis jetzt an der Stelle damit beholfen nicht update-sicher die Rechte-Prüfung hier auszuhebeln in dem ich die IF-Abfrage ausgehebelt habe:

    Vorher:
    if ($this->User->isAdmin || $this->User->hasAccess($objForms->id, 'forms'))
    {
    $arrForms[$objForms->id] = $objForms->title . ' (ID ' . $objForms->id . ')';
    }

    Nachher:
    $arrForms[$objForms->id] = $objForms->title . ' (ID ' . $objForms->id . ')';


    Allerdings löst es nicht das Problem und muss bei jedem Update erneut eingestellt werden. Und zusätzlich kann man dort auch nur global alle Formulare freigeben, aber nicht mehr unterscheiden.

    Wie macht Ihr das denn in so einem Falle? Oder ist dies quasi ein Logischer Fehler, der vielleicht doch ins Ticket-System gehört?

  2. #2
    Contao-Nutzer
    Registriert seit
    08.10.2012.
    Beiträge
    33

    Standard Ergänzung - Problem tritt dann auf wenn man mehr als eine Gruppe hat

    Ergänzend zu meinem Eingangs-Post hat das Problem eine ganz andere Ursache.

    Die Ursache liegt an der DCA-Konfiguration, wenn man mehr als eine Gruppe hat und die Gruppe, die die Berechtigung zum Anlegen von Formularen nicht die 1. Gruppe ist, die einem Benutzer zu geordnet ist.

    Ich habe hier zu ein Github-Ticket anleget, und dort das ganze einmal ausführlicher geschrieben:

    https://github.com/contao/core/issues/7371

    Sobald es dazu Neuigkeiten gibt, werde ich diese hier auch in das Ticket reinschreiben.

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
  •