Fragen zur UDM/UMC Programmierung

Hallo,

ich arbeite gerade am UM. Bisher schreibe ich einfach mittels udm erweiterte Attribute, aber ich habe einige Fragen:

  1. Wie kann ich Eingabefelder innerhalb eines Tabs positionieren? Mommentan scheint die Reihenfolge, in der die Felder hinzugefügt werden, eine Rolle zu spielen, aber ich würde die Anordnung gerne selbst beeinflussen.
  2. Wie kann ich Eingabefelder in einem dieser ausklappbaren grauen Kästen (UMC 3.0-x) gruppieren bzw. zusammenfassen? Geht das noch mit udm settings oder muss ich ein vollständiges Modul schreiben? Gibt es dazu Beispielcode?
  3. Gibt es irgendwo eine vollständige Dokumentation für udm? Im Wiki-Artikel "Erstellen eines erweiterten Attributs mit Hook habe ich beispielsweise Optionen gefunden, die ich nirgendwo dokumentiert finde.
  4. Wie kann ich Werte für Dropdown-Felder definieren?

Vielen Dank im Voraus!

Und noch eine einfache Frage: Wo ist das hook Verzeichnis für univention-directory-manager 3.x? Laut Wiki ist es /usr/lib/python2.4/site-packages/univention/admin/hooks.d, aber das bezieht sich anscheinend nur auf 2.4.

–Edit:–
Hab es gefunden: /usr/share/pyshared/univention/admin/hooks.d/
Etwas mehr Doku täte gut, aber das Problem ist ja schon bekannt.

Hallo,

[quote=“wickert”]1. Wie kann ich Eingabefelder innerhalb eines Tabs positionieren? Mommentan scheint die Reihenfolge, in der die Felder hinzugefügt werden, eine Rolle zu spielen, aber ich würde die Anordnung gerne selbst beeinflussen.[/quote]Die Position innerhalb eines Tabs wird über das Attribut “tabPosition” gesteuert.

[quote=“wickert”]2. Wie kann ich Eingabefelder in einem dieser ausklappbaren grauen Kästen (UMC 3.0-x) gruppieren bzw. zusammenfassen? Geht das noch mit udm settings oder muss ich ein vollständiges Modul schreiben? Gibt es dazu Beispielcode?[/quote]Das geht mit den Attributen “groupName” und “groupPosition”.

[quote=“wickert”]3. Gibt es irgendwo eine vollständige Dokumentation für udm? Im Wiki-Artikel "Erstellen eines erweiterten Attributs mit Hook habe ich beispielsweise Optionen gefunden, die ich nirgendwo dokumentiert finde.[/quote]Weitere Hinweise und Dokumentation zu den Erweiterten Attributen finden Sie auch im aktuellen [sd]UCS Handbuch[/sd], Kapitel “Erweiterung der in UMC verwalteten Attribute mit erweiterten Attributen”.

[quote=“wickert”]3. Wie kann ich Werte für Dropdown-Felder definieren?[/quote]Hierfür können Sie eine neue Syntax-Definition erstellen die die möglichen Werte anhand eines LDAP-Suchfilters beschreibt. Ein Beispiel finden Sie z.B. im UVMM Exteded Attribute “ManageableBy” und der zugehörigen Sytnax-Definition “ManagementServer”, welche im Join-Script des Pakets univention-virtual-machine-manager-schema angelegt werden (univention-virtual-machine-manager-schema).

[quote=“wickert”]Wo ist das hook Verzeichnis für univention-directory-manager 3.x? Laut Wiki ist es /usr/lib/python2.4/site-packages/univention/admin/hooks.d, aber das bezieht sich anscheinend nur auf 2.4.[/quote]Unter UCS 3.0 müssen die Hooks im Verzeichnis /usr/share/pyshared/univention/admin/hooks.d abgelegt werden.

Mit freundlichen Grüßen
Janis Meybohm

Danke Herr Meybohm,

das hilft mir schom mal enorm weiter.

Ich dachte eigentlich eher an eine Dokumentation der UDM CLI. Deckt der Web-UDM alle Optionen der CLI ab?

Ein sehr konkretes Problem habe ich jetzt noch: Ich habe ein extented attribute erstellt, dass eine Checkbox anzeigt. Die Checkbox gibt die booleans 0 und 1 aus, aber das zugeordnete LDAP-Attribut erwartet FALSE und TRUE. Ich brauche also entweder eine Möglichkeit, sofort TRUE und FALSE zu nutzen oder einen hook, der das übersetzt, also hook_open zum Lesen und hook_ldap_post_modify zum Schreiben. Die Problemstellung ist so generisch, dass ich mir kaum vorstellen kann, dass es da noch keinen Code oder eine andere Lösung für gibt.

Haben Sie eventuell Beispielcode?

Beste Grüße,
Christoph Wickert

Hallo,

hierfür stehen die gesonderten Sytnax-Definitionen “TrueFalseUpper” bzw. “TrueFalse” zur Verfügung:[quote=“UCS Handbuch”]Neben Standard-Syntaxdefinitionen für Zeichenketten (string), Zahlen (integer) gibt es drei Möglichkeiten einen binären Zustand auszudrücken: Die Syntax TrueFalse wird auf LDAP-Ebene durch die Zeichenketten true und false abgebildet, die Syntax TrueFalseUpper referenziert die OpenLDAP-Bool-Werte TRUE und FALSE und die Syntax boolean speichert keinen Wert oder die Zeichenkette 1.[/quote]

Mit freundlichen Grüßen
Janis Meybohm

Hallo Herr Meybohm,

tut mir Leid, da habe ich wohl den Wald vor lauter Bäumen nicht gesehen. In der Zwischenzeit hatte ich mir einen einfachen Hook geschrieben, aber TrueFalseUpper ist natürlich viel einfacher. Trotzdem würde ich mich freuen, wenn jemand mal Zeit findet, die Hooks etwas besser zu dokumentieren.

Vielen Dank für Ihre tolle Unterstützung!

beste Grüße,
Christoph Wickert

Hallo Herr Meybohm,

leider muss ich noch mal auf diese Frage zurückkommen. TrueFalseUpper erzeugt ein Dropdown mit den Optionen TRUE und FALSE. Das ist ok für Administratoren, aber Nutzern möchte man das nicht präsentieren. Die brauchen eine Checkbox, so wie sie auch booleans erzeugen. Gibt es diese Möglichkeit und wenn nicht, wie sähe ein Hook dafür aus?

Beste Grüße,
Christoph Wickert

Hallo Herr Wickert,

Um eine CheckBox zu erzeugen kann die Syntaxklasse TrueFalseUp benutzt werden. Diese kann im Gegensatz zu TrueFalseUpper nur 2 Zustände speichern während TrueFalseUpper auch noch keinen Wert (=nicht gesetzt als LDAP-Attribut) annehmen kann. Deshalb ist TrueFalseUpper momentan noch eine ComboBox (siehe [bug]23225[/bug]).

mit freundlichem Gruß
Florian Best

Mastodon