typo3 templavoila – Sie haben nicht die nötigen Rechte, um diese Änderung durchzuführen.

Sie haben nicht die nötigen Rechte, um diese Änderung durchzuführen

Bei einer Typo3 6.2 Installation mit TemplaVoila 1.9.2 standen wir vor einem fast unlösbaren Rätsel: Aus unerfindlichem Grund funktionierte das Anlegen von neuen Inhaltselementen nicht mehr – weder in der Listenansicht noch in der TV-Seitenansicht. Nach Auswahl eines Contentelementes aus dem Wizard brach Typo3 mit der Fehlermeldung „Sie haben nicht die nötigen Rechte, um diese Änderung durchzuführen.“ ab. Und das, obwohl wir als Admin eingeloggt waren.

Vor wenigen Tagen noch lief alles problemlos und wir hatten kein Update eingespielt.
Im Netz findet mal viele Lösungen dazu, am häufigsten den Hinweis, dass ein Feld in der Datenbank-Tabelle pages fehlen würde.

t3ver_swapmode ist es nicht!

Die allgemein anerkannte Lösung, folgenden MySQL-Befehl zum Einfügen der fehlenden Spalte auszuführen, funktionierte aber leider nicht:

ALTER table pages add(`t3ver_swapmode` tinyint(4) NOT NULL DEFAULT '0');

MariaDB hat Probleme mit unmaskiertem „recursive“ von Typo3

Nach langem Suchen: Der Host hatte die Datenbank auf MariaDB umgestellt. MariaDB hat ein reserviertes Keyword recursive – das blöderweise auch ein Spaltenname in der Tabelle tt_content ist. Beim Generieren der INSERT-Query in /typo3/sysext/core/Classes/Database/DatabaseConnection.php maskiert Typo3 allerdings die Feldnamen nicht durch backticks – es steht als INSERT INTO tt_content (recursive, ...) statt INSERT INTO tt_content(`recursive`, ...).

Die Query bricht mit der Fehlermeldung „SQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‚recursive,menu_type,list_type,table_bgColor,table_border,table_cellspacing,ta…‘ at line 1“ ab.

Patch und Lösung

Das Problem wurde in einer späteren Version von Typo3 gefixed. Für Typo3 < 6 kann es mithilfe dieser Patches zum Laufen gebracht werden: https://forge.typo3.org/attachments/35472?utf8=%E2%9C%93&type=sbs

Schritt für Schritt Anleitung

  1. Die Datei /typo3/sysext/core/Classes/Database/DatabaseConnection.php bearbeiten
  2. Folgende Zeilen suchen und ersetzen:

Suche nach:
$query = 'INSERT INTO ' . $table . ' (' . implode(',', array_keys($fields_values)) . ') VALUES ' . '(' . implode(',', $fields_values) . ')';
Ersetzen mit:
$query = 'INSERT INTO ' . $table . ' (`' . implode('`,`', array_keys($fields_values)) . '`) VALUES ' . '(' . implode(',', $fields_values) . ')';


Suche nach:
$query = 'INSERT INTO ' . $table . ' (' . implode(', ', $fields) . ') VALUES ';
Ersetzen mit:
$query = 'INSERT INTO ' . $table . ' (`' . implode('`,`', $fields) . '`) VALUES ';


Suche nach:
$fields[] = $k . '=' . $v;
Ersetzen mit:
$fields[] = '`' . $k . '`=' . $v;


Suche nach:
$queryParts[] = $table . '.' . implode(($like . ' OR ' . $table . '.'), $fields) . $like;
Ersetzen mit:
$queryParts[] = $table . '.`' . implode(('`' . $like . ' OR ' . $table . '.`'), $fields) . '`' .$like;


Für Suchmaschinen: In TYPO3 erscheint beim Anlegen eines Inhaltselements folgende Fehlermeldung von TemplaVoila: „Sie haben nicht die nötigen Rechte, um diese Änderung durchzuführen.“ Probleme Typo3 Zugriffsrechte Backend Templavoila trotz Admin-Rechten. TemplaVoila funktioniert unter MariaDB nicht mehr. Typo3 Problem MariaDB INSERT Query. TemplaVoila forbidden new content element, SQL Error: You have an error in your SQL syntax. MariaDB.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.