Difference between revisions of "Entwicklung und Integration eigener Module in Univention Directory Manager"

From Univention Wiki

Jump to: navigation, search
Line 26: Line 26:
 
Im folgende werden die globalen Variablen definiert, die in einem Univention Directory Manager-Modul besondere Bedeutungen haben. Dabei wird zwischen zwingend notwendigen und optionalen Variablen unterschieden. Die folgende Liste enthält die erforderlichen Variablen, die jedes Modul definieren muss:  
 
Im folgende werden die globalen Variablen definiert, die in einem Univention Directory Manager-Modul besondere Bedeutungen haben. Dabei wird zwischen zwingend notwendigen und optionalen Variablen unterschieden. Die folgende Liste enthält die erforderlichen Variablen, die jedes Modul definieren muss:  
  
*'''module''' String, der dem Namen des UDM-Moduls entsprechen muss, z.B. ''computers/computer''
+
*'''module''' String, der dem Namen des UDM-Moduls entsprechen muss, z.B. ''computers/computer''  
*'''operations''' Liste von Strings, enthält alle mit diesem Objekt erlaubten LDAP-Operationen. Mögliche Operationen sind:<span style="font-style: italic;"> </span>''['add','edit','remove','search','move']
+
*'''operations''' Liste von Strings, enthält alle mit diesem Objekt erlaubten LDAP-Operationen. Mögliche Operationen sind:<span style="font-style: italic;"> </span>''['add','edit','remove','search','move']''
*'''short_description''' Diese Beschreibung wird im Web-Frontend des Univention Directory Manager als Name angezeigt. Im Bereich ''Navigation'' wird dieser Text in der Auswahlliste für mögliche Objekttypen angezeigt.
+
*'''short_description''' Diese Beschreibung wird im Web-Frontend des Univention Directory Manager als Name angezeigt. Im Bereich ''Navigation'' wird dieser Text in der Auswahlliste für mögliche Objekttypen angezeigt.  
*'''childs''' Gibt an, ob es sich bei diesem LDAP-Objekt um einen Container handelt. In diesem Fall wird diese Variable auf den Wert ''1'' gesetzt und andernfalls auf ''0''.
+
*'''childs''' Gibt an, ob es sich bei diesem LDAP-Objekt um einen Container handelt. In diesem Fall wird diese Variable auf den Wert ''1'' gesetzt und andernfalls auf ''0''.  
*'''long_description''' Eine ausführliche Beschreibung des Moduls
+
*'''long_description''' Eine ausführliche Beschreibung des Moduls  
*'''options''' Ein Python-Dictionary, das Optionen definiert, die genutzt werden können um einzelne Attribute (''properties'') dieses Moduls auszublenden. In diesem Dictionary werden die Optionen (als univention.admin.option Objekte) einer eindeutigen Zeichenkette zugeordnet, die später zur Referenzierung verwendet wird (siehe ''property-descriptions'').<br>Beispiel:
+
*'''options''' Ein Python-Dictionary, das Optionen definiert, die genutzt werden können um einzelne Attribute (''properties'') dieses Moduls auszublenden. In diesem Dictionary werden die Optionen (als univention.admin.option Objekte) einer eindeutigen Zeichenkette zugeordnet, die später zur Referenzierung verwendet wird (siehe ''property-descriptions''). Jede Option erhält zwei Parameter:
<pre>
+
 
options = { 'opt1' : univention.admin.option(
+
#'''short_description''': Eine kurze Beschreibung der Option, die beispielsweise im Web-Frontend des Univention Directory Manager als beschreibender Text zu den Eingabefeldern genutzt wird.
 +
#'''default''' Definiert, ob diese Option standardmäßig aktiviert sein soll. Eine ''1'' steht dabei für aktiv und eine ''0'' für inaktiv.
 +
 
 +
Beispiel:  
 +
<pre>options = { 'opt1'&nbsp;: univention.admin.option(
 
  short_description = 'short description',
 
  short_description = 'short description',
 
  default = 1 )  
 
  default = 1 )  
 
  }
 
  }
</pre>
+
</pre>  
 +
*'''property-descriptions'''

Revision as of 14:50, 26 February 2010

Einführung

Univention Directory Manager verwendet zur Verwaltung der Daten des Verzeichnisdienstes flexible und erweiterbare Struktur aus Python-Modulen. Zusätzlich einzubindende Module werden nach Ablage im Dateisystem automatisch erkannt und zur Verwendung an Kommandozeile und Web-Interface angeboten.

Die Entwicklung eigener Module erlaubt Univention Directory Manager über den Funktionsumfang von erweiterten Attributen hinaus flexibel zu erweitern.

Univention Directory Manager-Module

Übersicht

Univention Directory Manager (kurz UDM) verwendet zur Abbildung von LDAP-Objekten eine eigene Modulstruktur. Im Regelfall entspricht eines dieser UDM-Module einem LDAP-Objekt (z.B. einem Benutzer, einer Gruppe oder einem Container).

Die Module sind nach Aufgabenbereichen strukturiert im Verzeichnis /usr/lib/python2.4/site-packages/univention/admin/handlers/. Die Module für die Verwaltung der verschiedenen Rechnerobjekte befinden sich beispielsweise unterhalb des Ordners computers. Dieses Objekt kann von der Kommandzeilenschnittstelle durch computers/windows angesprochen werden.

Eigene Module sollten nach Möglichkeit in einem eigenen Unterverzeichnis abgelegt werden, um Konflikte mit eventuell später in UCS integrierten Standardmodulen zu vermeiden. Damit die Module initialisiert werden können, muss im Verzeichnis eine Datei __init__.py existieren.

Aufbau eines Moduls

Ein Modul besteht aus der Definition der Modul-Attribute und der Definition einer von univention.admin.simpleLdap abgeleiteten Klasse object.

Im folgenden wird mit einer ausführlichen Beschreibung der zu definierenden Variablen begonnen. Im darauf folgenden Abschnitt wird die Klasse object genauer betrachtet und notwendige Definitionen und Funktionen in der Klasse aufgelistet. Abschließend werden noch zwei optionale Funktionen definiert und erklärt.

Globale Variablen

Im folgende werden die globalen Variablen definiert, die in einem Univention Directory Manager-Modul besondere Bedeutungen haben. Dabei wird zwischen zwingend notwendigen und optionalen Variablen unterschieden. Die folgende Liste enthält die erforderlichen Variablen, die jedes Modul definieren muss:

  • module String, der dem Namen des UDM-Moduls entsprechen muss, z.B. computers/computer
  • operations Liste von Strings, enthält alle mit diesem Objekt erlaubten LDAP-Operationen. Mögliche Operationen sind: ['add','edit','remove','search','move']
  • short_description Diese Beschreibung wird im Web-Frontend des Univention Directory Manager als Name angezeigt. Im Bereich Navigation wird dieser Text in der Auswahlliste für mögliche Objekttypen angezeigt.
  • childs Gibt an, ob es sich bei diesem LDAP-Objekt um einen Container handelt. In diesem Fall wird diese Variable auf den Wert 1 gesetzt und andernfalls auf 0.
  • long_description Eine ausführliche Beschreibung des Moduls
  • options Ein Python-Dictionary, das Optionen definiert, die genutzt werden können um einzelne Attribute (properties) dieses Moduls auszublenden. In diesem Dictionary werden die Optionen (als univention.admin.option Objekte) einer eindeutigen Zeichenkette zugeordnet, die später zur Referenzierung verwendet wird (siehe property-descriptions). Jede Option erhält zwei Parameter:
  1. short_description: Eine kurze Beschreibung der Option, die beispielsweise im Web-Frontend des Univention Directory Manager als beschreibender Text zu den Eingabefeldern genutzt wird.
  2. default Definiert, ob diese Option standardmäßig aktiviert sein soll. Eine 1 steht dabei für aktiv und eine 0 für inaktiv.

Beispiel:

options = { 'opt1' : univention.admin.option(
 short_description = 'short description',
 default = 1 ) 
 }
  • property-descriptions
Personal tools