0

Metavariable mit Rechten

arno spieth vor 8 Jahren aktualisiert vor 8 Jahren 2

Wir und unsere Administratoren steuern das Aussehen der Webseiten über die Metavariablen in den Rubriken. D.h. als Superuser muss ich in den Rubriken bestimmte Variablen belegen und mit Werten versehen, die beispielsweise dafür sorgen, dass die Seiten auf dem richtigen Live-System landen usw. Andere Variablen belegen die Administratoren, beispielsweise wer für die Seiten der Rubrik und teilweise der Unterrubriken verantwortlich ist, Text also, der auf der Webseite veröffentlicht wird. Mit dieser Information habe ich als Superuser nichts zu tun, da ich hier inhaltlich keine Ahnung habe.

Diese Informationen werden beim Erstellen in die Unterrubiken vererbt und dort von den Administratoren verändert und ergänzt.

Wenn der Administrator diese Variablen anpassen kann und soll, dann kann es natürlich immer passieren, dass er sich irrt und Meta-Informationen verfälscht, die er nicht verändern sollte, wie die Angabe auf welchem Livesystem freigeschaltet wird. Es gibt Variablen, die mit 2 Strichen beginnen, richtig, die Imperia einsetzt, es gibt Variablen, die ich benutze und von denen der Adminitrator gefälligst die Finger lassen soll. Natürlich darf er sie sehen, das stört mich nicht, aber er sollte sie nicht verändern dürfen.

Ich kann zwar dem Administrator das Recht entziehen, diese Meta-Informationen zu bearbeiten. Aber dann müsste ich es selbst machen, was mir gar nicht gefallen würde. Er soll alle Variablen eintragen dürfen (die wir brauchen können sind natürlich beschränkt), aber er soll nicht alle Variablen bearbeiten dürfen.

Im Prinzip bräuchte ich eine Möglichkeit, eine Liste von Variablennamen angeben zu können, die sich zwar weitervererben, wenn der Admin eine Subrubrik anlegt, die er aber nicht verändern kann. Wie z. B. __imperia_node_id. Sie sieht aus, wie eine ganz normale Variable, aber noch nicht mal der Superuser kann sie verändern. Das ist ein bisschen zu viel, es würde genügen, wenn nur der Superuser diese Variablen verändern kann. Und ich möchte nicht gezwungen sein, sämtliche Rubriken erst einmal grob anlegen zu müssen.

Ich weiß nicht, wie man das am Besten lösen kann. Aber so eine Exclude-Liste der bearbeitbaren Variablen würde helfen.

+1

Wir benutzen dazu ganz normal Imperia-Dokumente. "Rubrikenantrag",

1. Schritt aus Liste auswählen welche Rubrik geändert werden soll (bei uns Select-Liste)

2. Schritt : per Codeinclude sind die Felder, die änderbar sein sollen mit den bisher existierenden Wertenbefüllt und können nun geändert werden.

3. Schritt: am Ende kommt ein Transform Schritt, der die geänderten meta-Variablen in die Rubrik zurückschreibt.


Vorteil:

* mit dem Imperia-Template kann man haarklein festelgen welche Felder bearbeitet werden dürfen (Bsp Test auf MemberOf)

* man kann genau festlegen, ob für bestimmte Felder nur feste Werte (Select-Liste) möglich sein soll, oder Freitext erlaubt ist.


den "Rubrikenänderungs-Antrag" werfen wir hinterher komplett weg (shredder)

Hallo,


ich bin verwirrt. Ich dachte, genauso geht Imperia vor bei der Bearbeitung der Metavariablen der Rubriken. Na ja, nicht genauso. Zuerst kommt Schritt 1, welche Rubriken sieht der Administrator, dann kommt seit einiger Zeit Schritt 1a, eine neue Rubrik wird angelegt. Erst danach folgt der Schritt 2 (Bearbeiten der Metavariablen), wo in einem templateartigen Fenster die Eingaben gemacht werden, die dann in die Rubrik zurückgeschrieben werden.

Natürlich könnte ich das halbe Imperia nachbauen mit einem eigenen Template, bei dem ich die Werte in meinen vielen Sprachen über eine angenehmere Maske eintragen lassen könnte. Das normale Bearbeiten der Metavariablen würde ich für Admins sperren und lasse es nur für Superuser zu. Würde mein Problem lösen, bis es mir beim nächsten Imperia-Update um die Ohren fliegt. Vom Aufwand will ich gar nicht reden. Ich werde Ihre Idee trotzdem im Hinterkopf behalten.

Aber eigentlich brauche ich keine so umfangreiche Lösung. Bei der Generierung dieses Metavariablenformulars steht garantiert irgendwo:

if (node_id) then formatiere die Zeile anders
else z.b. class="imperia_metatable_row_editable"

Ich bräuchte nur die Ergänzung:
if (node_id || (user ne superuser && Metavariable in File)) then formatiere die Zeile anders...

Die Metavariable in File kann von mir aus auch eine Variable in der Config sein, die durch Kommata getrennte Variablennamen enthält.


Ich habe natürlich konkrete Anwendungen, aber man kann auch abstrakte Vorteile erkennen. Wenn es diese Möglichkeit gäbe, dann könnte man einfach Rubriken gruppieren. Als Superuser brauche ich nur die Einstiegsrubrik "markieren". Danach können unterhalb dieser Rubrik (einschließlich der Rubrik) die Administrator mit der Rubrik machen, was sie wollen, denn sie kommen an alle Variablen, außer an die Markierung. Sie können auch weitere Rubriken anlegen, weil sich die Markierung vererbt, gehören sie alle zu der Gruppe. Und im Gegensatz zur RubrikenID, die man auch heranziehen kann, lassen sich auch parallele Rubriken gruppieren und Unterrubriken ausnehmen, ohne dass man komplizierte Abfragen formulieren muss.