Benutzer:M.koehn

Aus dem IServ-Wiki
Version vom 19. April 2012, 13:32 Uhr von M.koehn (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „==Sonderrecht für Gruppen erstellen== In der Anleitung werden exemplarisch 2 Sonderrechte für das Testmodul (siehe Einbinden eigener Module) erstellt. <u…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Sonderrecht für Gruppen erstellen

In der Anleitung werden exemplarisch 2 Sonderrechte für das Testmodul (siehe Einbinden eigener Module) erstellt.

  • Verwaltung des Testmoduls
  • Erweitere Ansicht - zeige alle Details
root
mcedit /usr/share/iserv/priv/test

In dieser Datei werden die Sonderrechte wie folgt definiert:

datei
test_manage:
module       Testmodul
description  Manage Testmodul
assign       admins

test_extendedview:
module       Testmodul
description  Extended View - show all details
assign       admins,testgruppe
test_manage:interner Name des Sonderechts im Programmcode
moduleangezeigter Name des Moduls für dass das Recht verwendet wird
descriptionangezeigter Name des Sonderechts
assignSonderecht als Standard für die Gruppe(n) / kann man auch leerlassen wenn man keine Vorauswahl will

Übersetzungsdatei für die deutsche Sprache erstellen und verwenden

Bei der Entwicklung sollten alle zur Ausgabe gebrachten Texte in Englisch programmiert werden. Für die deutschen Übersetzungen erstellt man eine Übersetzungsdatei. Zwei Möglichkeiten der Definition stehen zur Wahl.

root
mcedit /opt/iserv/user/locale/de/test.po
datei
msgid  "Manage Testmodul"
msgstr "Verwaltung des Testmoduls"
msgid  "Extended View - show all details"
msgstr ":Erweitere Ansicht - zeige alle Details"
Information Falls in einer der Übersetzungsdateien schon die Übersetzung existiert kommt es zu einem Fehler der das Duplikat meldet. Dies kann man beheben in dem man das Duplikat aus der eigenen Definition löscht oder wie nachfolgend gezeigt anpasst.
datei
msgid  "test:Manage Testmodul"
msgstr "test:Verwaltung des Testmoduls"
msgid  "test:Extended View - show all details"
msgstr "test:Erweitere Ansicht - zeige alle Details"

Folgender Aufruf erneuert die Definition.

root
/opt/iserv/sbin/chklocale

Der Aufruf kann mit der Funktion _() oder _c() erfolgen. Die Ausgabe der _c()-Funktion bibt nur die Zeichenkette nach dem Doppelpunkt zurück. Sollten die Funktionen keine Übersetzung finden wird der als Parameter übergebene Text zurückgegeben.

datei
<?
echo _("Manage");                 //Version 1 "Verwaltung" wird aus einer der IServ-Dateien gelesen
echo _("Manage Testmodul");       //Version 1 "Verwaltung des Testmoduls"
echo _c("test:Manage Testmodul"); //Version 2 "Verwaltung des Testmoduls"
?>

Sonderrecht für Gruppen abfragen

Die Abfrage des Sonderrechts erfolgt mit der Funktion secure_privilege("NameDesSonderechts"). Exemplarisch hier den Einbau in die Navigation.

root
mcedit /usr/share/iserv/www/nav/info/main/05test.mod
datei
if (secure_privilege("test_manage"))
  TreeNode(_c("test_manage:Manage Testmodul"), "info/test/manage.php", "manage");
elseif (secure_privilege("test_extendedview"))
  TreeNode(_c("test_manage:Extended View - show all details"), "info/test/eview.php", "dlg-info");
else
  TreeNode(_c("test:Testmodul"), "info/test/index.php", "new");   
Information Die Überprüfung der Sonderrechte sollte auch in den aufgerufenen Dateien(manage.php;eview.php) erfolgen!