Fehler nach Update auf 5.4.1 - eigene Belege (Rechnungen) lassen sich nicht mehr erstellen

Fehler nach Update von 5.4.0 auf 5.4.1

Folgender Fehler tritt auf:

Beim Speichern des Dokuments ist ein Fehler aufgetreten.
directory ->eigener Templatepfad/documents/index.tpl
not allowed by security setting

Bis 5.4.0 klappte es ohne Probleme, obwohl Smarty Security ja schon ab 5.3. eingeschaltet ist.
Es wurde nichts geändert. Keine neuen Plugins, alle auf dem aktuellen Stand, keine Anpassungen an den PDF-Belegen, nichts.
Auch das Abschalten der Plugins bringt keine Verbesserung.

Ich  habe jetzt erst mal den Code deaktiviert, damit ich überhaupt mal Belege generieren kann.

/**
        $template->enableSecurity(
            new Security($template, $securityConfig)
*/

siehe:
We have activated the Smarty security mode globally with 5.3: https://github.com/shopware/shopware/blob/5.3/engine/Shopware/Components/DependencyInjection/Bridge/Template.php#L57

Hat jemand eine Idee und kann mir weiterhelfen?  Vielen Dank im voraus.

Das einzige was im Bezug auf Smarty Security in der 5.4.1 geändert wurde ist folgender PR: Fix clones of template manager with actived smarty security by windaishi · Pull Request #1452 · shopware/shopware · GitHub

Das sollte die Zahl der Fehler aber eigentlich reduzieren - vielleicht kannst Du mal prüfen ob das Auskommentieren des Codes bei Dir ebenfalls das Problem löst? Dann wäre zumindest der Zusammenhang klar.

Danke für die schnelle Antwort.

Ich habe den Securitycode wieder aktiviert und die oben angegebene Auskommentierung durchgeführt. Die Belegerstellung klappt nun wieder.

Das File kann ja bei einem neuen Update auch überschrieben werden. Was ist nun momentan das kleinere Übel? Auskommentieren wie angegeben oder auskommentieren der Security Settings?

Vielen Dank nochmal.

 

Selbes Problem hier. Wir haben eigene Templates für pdf-Dokumente. Und dort knallt es jetzt mega!

Habe jetzt den Code auch auskommentiert.

/**
     * Technically smarty security is enabled, if a security policy is set for the template manager instance. The
     * security policy holds a reference to the template manager instance. When cloning the template manager, the
     * reference of the security_policy to the Smarty instance has be updated to the new cloned Smarty instance.
     *
     * Without doing this, every self::fetch() after a directory was added with self::addTemplateDir(), would lead to a
     * SmartyException with message 'directory [...] not allowed by security setting'. This is because
     * the security_policy still holds a reference to the old Smarty instance that does not know this new directories
     * as template sources.
     *
     * The security_policy is also cloned so other instances of the Enlight_Template_Manager do not get affected.
     
    public function __clone()
    {
        parent::__clone();

        if ($this->security_policy !== null) {
            $this->security_policy = clone $this->security_policy;
            $this->security_policy->smarty = $this;
        }
    }
	*/

 

 

Gibt es eine Lösung?

Hier wäre interessant zu wissen, wie genau ihr Templates für die Dokumente angelegt habt. Ich konnte in meinem Test dazu kein Fehler erzeugen.
Evtl. wird tatsächlich was durchgeführt, was gegen die Richtinien verstößt. Wie genau wird das bei euch denn angelegt?

Selbes Problem hier!

Ich habe das gleiche Problem. Ich habe in dem Verzeichnis:

themes/Frontend/myFrontent/documents

eine neue index.tpl erstellt.

Der einzige Inhalt zu testen:

 

{extends file=“parent:documents/index.tpl”}
{namespace name=“documents/index”}

 

Wenn ich dann eine Rechnung erstellen will, kommt es zu dem Security-Fehler.

 

Schöne Grüße

Sebastian

same here

@oBASTIo schrieb:

Ich habe das gleiche Problem. Ich habe in dem Verzeichnis:

themes/Frontend/myFrontent/documents

eine neue index.tpl erstellt.

Der einzige Inhalt zu testen:

 

{extends file=„parent:documents/index.tpl“}
{namespace name=„documents/index“}

 

Wenn ich dann eine Rechnung erstellen will, kommt es zu dem Security-Fehler.

 

Schöne Grüße

Sebastian

Genau wie bei mir. 

Same here. Gibt es eine Stellungname seitens Shopware dazu?

Edit: Achso, SW-Version ist 5.4.3

Hab jetzt auch ein Ticket angelegt, weil ich kein entsprechendes gefunden habe: Shopware Issuetracker

Habe das Problem auch in 5.4.5 noch mit eigenem Dokumententemplate.

Diesen Pfade habe ich angegeben:

…/…/NameMeinesThemes/documents/rechnung.tpl

Wenn ich die clone()-Methode auskommentiere, klappt es.

Gibt es da inzwischen Neuigkeiten? Das von @mson‍ genannte Ticket ist inzwischen geschlossen wie es scheint…

Falls nochmal jemand sucht, hier steht die Lösung: https://forum.shopware.com/discussion/53404/pdf-rechnung

Hier muss das korrekte Theme gewählt sein: Grundeinstellungen->Shopeinstellungen->Shops->Dokumenten-Template

und dann dementsprechend nicht der lange Pfad in der PDF Erstellung.