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)
*/
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.
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?
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;
}
}
*/
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?