Univention Bugzilla – Bug 26344
Wizard-Module zum Anlegen von Benutzern, Klassen/Gruppen, Rechnern, Schulen
Last modified: 2012-06-11 06:29:57 CEST
Für UCS@school sind UMC-Module das Anlegen von Benutzern, Klassen/Gruppen und Rechner (in der Admin-Kategorie) vorgesehen. Die Module bestehen nur aus einem Wizard, der das Anlegen gegenüber den entsprechenden UDM-Modulen wesentlich vereinfacht (Eine Schule wird ausgewählt, Objekte werden an bestimmten LDAP-Positionen gespeichert, bei Gruppen werden Shares angelegt). Ein zusätzliches Wizard-Modul ermöglicht das Anlegen einer Schule (d.h. die entsprechenden LDAP-Container und -Strukturen werden erzeugt). Weitere Anforderungen sind: * Erklärender Text kann mit aufgenommen werden * Alle Wizard-Module schließen mit einer Erfolgsmeldung ab * Die Icons können die aus UDM übernehmen mit einem zusätzlichen "+" * Die Module werden als unterschiedliche Flavors angelegt
*** Bug 26159 has been marked as a duplicate of this bug. ***
Paketname wird ucs-school-umc-wizards und Modul-ID wird schoolwizards sein.
Für das Anlegen der Objekte können die in dem Import-Skript definierten Funktionen verwendet werden (siehe dazu auch Bug 26478).
Sollte es mehrere Schulen geben muss diese im Wizard ebenfalls ausgewählt werden können. Die Umsetzung sollte sich an der folgenden Variante orientieren: https://forge.univention.org/bugzilla/show_bug.cgi?id=26552#c1
(In reply to comment #3) > Für das Anlegen der Objekte können die in dem Import-Skript definierten > Funktionen verwendet werden (siehe dazu auch Bug 26478). Das wird jetzt anders abgebildet, die Importskripte bleiben zunächst so bestehen und werden aus dem Modul heraus aufgerufen. Bevor ein Skript aufgerufen wird, werden die wichtigsten Fehlerfälle abgeprüft (bspw. bei Benutzern: sind username oder mailaddress bereits vorhanden; bei Rechnern: sind MAC-/IP-Adresse oder Name bereits vorhanden etc.) und eine entsprechende Fehlermeldung dem Benutzer ausgegeben. Ansonsten wird der Statuscode des Skripts ausgewertet und eine allgemeine Fehlernachricht ausgegeben. In den Wizards ist folgendes Verhalten denkbar. Trat ein Fehler auf, so wird dies mit einem Alert-Popup ausgegeben, die Wizard-Seite wird nicht gewechselt. Wurde ein Objekt erfolgreich angelegt, wird dies auf einer neuen Wizard-Seite bestätigt und dort kann man über einen Button den Wizard entweder schließen oder ein neues Objekt anlegen (dann startet der Wizard wieder von vorne).
Diese Funktionalität wurde mehrfach von Kunden angefragt, um den Schulen einen Self-Service zu ermöglichen. Es wäre wünschenwert, wenn die Module so konfiguriert werden könnten, dass ein Benutzer (z.B. Schuladmin) nur in seiner Schule neue Benutzer anlegen darf. Weitere Ideen zur Nutzung des Moduls sind an Ticket #2010120910000772 beschrieben. U.a. wäre es spannend, wenn (alternativ) der Username nicht angegeben werden müsste, sondern nur Vorname, Nachname und Geburtsdatum. Andere Schullösungen berechnen aus den drei Werten automatisch den passenden Benutzernamen, Kollisionen treten praktisch nicht auf.
(In reply to comment #6) > Diese Funktionalität wurde mehrfach von Kunden angefragt, um den Schulen einen > Self-Service zu ermöglichen. Es wäre wünschenwert, wenn die Module so > konfiguriert werden könnten, dass ein Benutzer (z.B. Schuladmin) nur in seiner > Schule neue Benutzer anlegen darf. > > Weitere Ideen zur Nutzung des Moduls sind an Ticket #2010120910000772 > beschrieben. U.a. wäre es spannend, wenn (alternativ) der Username nicht > angegeben werden müsste, sondern nur Vorname, Nachname und Geburtsdatum. Andere > Schullösungen berechnen aus den drei Werten automatisch den passenden > Benutzernamen, Kollisionen treten praktisch nicht auf. Bitte in eigenständige Bugs ausgliedern.
Das entsprechende Modul wurde erstellt. Derzeit ist es im Computer-Wizard nur möglich einen IP-Managed-Client sowie einen Windows-Client zu erstellen. Soll dies nicht das gewünschte Verhalten sein, bitte bescheid geben. Paket ist gebaut; Changelog ist vorhanden.
(In reply to comment #7) > Bitte in eigenständige Bugs ausgliedern. Gesagt, getan; Bug #26778
Ich glaube die Paketbeschreibung ist nicht ganz in Ordnung: > root@master27:~# apt-cache search ucs-school-umc > ... > ucs-school-umc-schooladmin - transitional dummy package > ucs-school-umc-roomreservation - UMC dummy module > ucs-school-umc-wizards - TODO > ucs-school-umc-computerroom - UMC module to control computers in a room > ucs-school-umc-helpdesk-schema - LDAP Schema for univention-management-console-helpdesk
In der Modulübersicht werden die Module heißen: Benutzer hinzufügen Klassen hinzufügen Computer hinzufügen Schulen hinzufügen
Die Wizards sollten nur auf dem Master und den Backups vorhanden sein. Aktuell werden die Wizards nur auf Singlemaster und Slave installiert.
Es fehlt noch eine Abhängikeit auf das Paket ucs-school-umc-common. Ich habe auf einem Testmaster (kein Singlemaster) die Wizardpakete installiert. Beim Versuch eine Schule oder einen Benutzer anzulegen bekam ich die Meldung "Connection to module process failed". Aus der Logdatei: 17.04.12 15:23:55.724 MODULE ( ERROR ) : Failed to import module schoolwizards: No module named wizards.schoolwizards
Bitte überprüfen, ob die Module fehlerfrei laufen, wenn keine Schul-OUs existieren.
Folgende Punkte wurden schon mal angepasst: - Modulnamen geändert - fehlende Abhängigkeit hinzugefügt - Paketbeschreibung angepasst Paket baut gerade.
Bitte Abhängigkeiten zu folgenden Paketen hinzufügen (diese sind aus ucs-school-module-groups): Depends: ${misc:Depends}, univention-management-console, univention-config-registry, ucs-school-umc-common, python-ucs-school, shell-ucs-school, python-univention-directory-manager, univention-directory-manager-tools Ist folgenden Anpassung der Wizards möglich? Wenn ein Benutzer (gleiches gilt für Rechner, Klassen, Schulen) erfolgreich erstellt wurde, wäre es toll, wenn... (a) das Formular bestehen bleibt, (b) eine entsprechende Bestätigungsmeldung oben angezeigt wird ("Der <username> wurde erfolgreich erstellt. Bitte geben Sie einen neuen Benutzer an"), (c) der Fokus direkt auf das erste Eingabefeld gesetzt wird, (d) nicht eindeutige Eigenschaften (bspw. Klassenname) sollten bestehen bleiben (ist jetzt auch schon so) So können schnell neue UDM-Objekte angegeben werden. Zusätzlich fehlt noch ein optionales Feld bei der Eingabe von Schulen, mit dem der DC-Master angegeben werden kann (diese Eigenschaft bietet das Importskript auch an).
Derzeit muss man beim Anlegen eines Lehres/Mitarbeiters eine Klasse angeben. Besser wäre es, dass das Feld für die Klasse ausgeblendet wird.
(In reply to comment #14) > Bitte überprüfen, ob die Module fehlerfrei laufen, wenn keine Schul-OUs > existieren. Dafür gibt es nun eine generische Fehlermeldung; siehe Bug #26871.
Ich fände es gut, wenn für Benutzer (Schüler, Lehrer, ...) auch direkt ein Passwort angegeben werden kann.
(In reply to comment #19) > Ich fände es gut, wenn für Benutzer (Schüler, Lehrer, ...) auch direkt ein > Passwort angegeben werden kann. → Dafür gibt es jetzt Bug 26959, der diese Erweiterung behandelt.
Folgende Punkte wurden gefixed: * fehlende Abhängigkeiten * die gewünschte Anpassung bzgl. Objekte nacheinander anlegen * fehlende Feld im "Schule hinzufügen"-Wizard * ausblenden der Klasse bei einem Lehrer/Mitarbeiter Nebenbei wurden noch ein paar Texte/Übersetzungen angepasst, die ACLs korrigiert sowie den einen oder anderen Fehler behoben.
Beim Ausführen der Wizards von einem Slave aus, erhalte ich die Fehlermeldung "[Errno 2] No such file or directory", hier der Ausschnitt aus dem Logfile: > 03.05.12 13:08:22.247 PARSER ( INFO ) : UMCP REQUEST 133604330220075-26 parsed successfully > 03.05.12 13:08:22.247 MODULE ( INFO ) : Received request 133604330220075-26 > 03.05.12 13:08:22.247 PROTOCOL ( INFO ) : Received UMCP COMMAND REQUEST 133604330220075-26 > 03.05.12 13:08:22.247 MODULE ( INFO ) : Executing ['schoolwizards/users/create'] > 03.05.12 13:08:22.247 MODULE ( INFO ) : connection type: ldap_user_read > 03.05.12 13:08:22.253 MODULE ( INFO ) : [Errno 2] No such file or directory > 03.05.12 13:08:22.253 PROTOCOL ( INFO ) : Sending UMCP RESPONSE 133604330220075-26
Auf einem Slave sind die Importskripte lokal nicht verfügbar, darum dieser Fehler. Das Paket sollte bei einem Slave aus den Dependencies genommen werden.
Das Paket wurde für einen Slave aus den Abhängigkeiten genommen.
Beim Hinzufügen der Schule kann der Name des Schul-DC angegeben werden. Vielleicht sollte es besser "Domänencontroller der Schule" heissen oder "Name des Domänencontroller dieser Schule" oder "Domänencontroller-Name".
Ich glaube die temporäre Datei beim Anlegen von Benutzern, Gruppen, Rechnern wird nicht gelöscht. Das wäre ganz gut dies noch zu tun.
(In reply to comment #26) > Ich glaube die temporäre Datei beim Anlegen von Benutzern, Gruppen, Rechnern > wird nicht gelöscht. Das wäre ganz gut dies noch zu tun. → Mein Fehler, die Datei wird automatisch gelöscht.
Ein Benutzer wird nicht angelegt, wenn der Klassenname auf ein Leerzeichen endet. Vielleicht ist es sinnvoll, Leerzeichen am Anfang/Ende der Eingabewerte (Klasse, Benutzername, Vor/Nachname etc.) zu entfernen.
Wichtig fände ich noch, wenn eine LDAP-Abfrage nach Ausführen des Import-Skriptes durchgeführt wird, die überprüft, ob der Benutzer/die Gruppe/der Rechner wirklich angelegt wurde. Bei Fehlerfällen wird ansonsten angezeigt, dass das Objekt angelegt wurde, was aber nicht stimmt. Das kann zu Verwirrung führen.
(In reply to comment #25) > Beim Hinzufügen der Schule kann der Name des Schul-DC angegeben werden. > Vielleicht sollte es besser "Domänencontroller der Schule" heissen oder "Name > des Domänencontroller dieser Schule" oder "Domänencontroller-Name". Nochmal mit Moritz besprochen, er wird den Schul-DC in der Doku Schulserver nennen. Also wäre der Vorschlag "Rechnername des Schulservers" und für das erste Feld "Name der Schule". Der Rechnername des Schulservers sollte auch ein Pflichtfeld sein.
Folgende Dinge wurden angepasst: * Schulserverlabel wurde angepasst * Leerzeichen am Anfang/Ende werden entfernt * Am Ende wird noch einmal überprüft, ob das Objekt wirklich angelegt wurde * Die Angabe vom Schulserver ist nun pflicht * Sytax vom Schulservernamen wird im Frontend gecheckt * Die Syntaxüberprüfung für alle request options wurde verbessert Paket ist gebaut.
(In reply to comment #25) > Beim Hinzufügen der Schule kann der Name des Schul-DC angegeben werden. > Vielleicht sollte es besser "Domänencontroller der Schule" heissen oder "Name > des Domänencontroller dieser Schule" oder "Domänencontroller-Name". Bitte noch eine kleine Änderung: Auf einem Singleserver ist es nicht notwendig, den Schulserver anzugeben (das Feld kann ausgeblendet werden), dies ist nur notwendig im Falle eines Multli-"Master"-Setups.
(In reply to comment #32) > (In reply to comment #25) > > Beim Hinzufügen der Schule kann der Name des Schul-DC angegeben werden. > > Vielleicht sollte es besser "Domänencontroller der Schule" heissen oder "Name > > des Domänencontroller dieser Schule" oder "Domänencontroller-Name". > > Bitte noch eine kleine Änderung: Auf einem Singleserver ist es nicht notwendig, > den Schulserver anzugeben (das Feld kann ausgeblendet werden), dies ist nur > notwendig im Falle eines Multli-"Master"-Setups. Das wurde nun angepasst.
Benutzer-Wizard: + Schüler anlegen: OK (Bug #27193) + Lehrer anlegen: OK Wenn ich eine falsche E-mail-Addresse angebe gibt es eine Traceback: bla1fasel.de Die Ausf�hrung des Kommandos schoolwizards/users/create ist fehlgeschlagen: Traceback (most recent call last): File '/usr/lib/pymodules/python2.6/univention/management/console/modules/__init__.py', line 102, in execute func( request ) File '/usr/lib/pymodules/python2.6/ucsschool/lib/schoolldap.py', line 210, in wrapper_func raise LDAP_ConnectionError( str( e ) ) LDAP_ConnectionError: Kein g�ltiger LDAP-DN
(In reply to comment #34) > Benutzer-Wizard: > > + Schüler anlegen: OK (Bug #27193) > + Lehrer anlegen: OK Mitarbeiter: OK Mitarbeiter & Lehrer: OK
Computer-Wizard: + Windows: OK + Gerät mit IP-Adresse: OK Klassen-Wizard: OK Schul-Wizard: Hier ist der Schul-DC ein Pflichtfeld. Das sollte aber eigentlich nicht notwendig sein denke ich
Wenn ich eine Schule angelegt habe bleibt danach der alte Schul-DC in dem Feld stehen. Das sollte so wie der Schulname gelöscht werden.
ChangeLog-Eintrag ist vorhanden
(In reply to comment #36) > ... > Hier ist der Schul-DC ein Pflichtfeld. Das sollte aber eigentlich nicht > notwendig sein denke ich Das war so abgesprochen.
(In reply to comment #32) > (In reply to comment #25) > > Beim Hinzufügen der Schule kann der Name des Schul-DC angegeben werden. > > Vielleicht sollte es besser "Domänencontroller der Schule" heissen oder "Name > > des Domänencontroller dieser Schule" oder "Domänencontroller-Name". > > Bitte noch eine kleine Änderung: Auf einem Singleserver ist es nicht notwendig, > den Schulserver anzugeben (das Feld kann ausgeblendet werden), dies ist nur > notwendig im Falle eines Multli-"Master"-Setups. Kleine Anmerkung dazu: es darf in keinem Fall der Master angegeben werden. Das Importskript würde beim create_ou den Master in einige Gruppen stecken, was dazu führt, dass der Master nicht mehr den vollen Zugriff auf den LDAP-Baum besitzt, da die Gruppen in den LDAP-ACLs verwendet werden. Es wäre sinnvoll, wenn in einem Master-Slave-Setup der vom Benutzer angegebene Hostname gegen den des Master geprüft und verweigert wird.
(In reply to comment #40) > (In reply to comment #32) > > (In reply to comment #25) > > > Beim Hinzufügen der Schule kann der Name des Schul-DC angegeben werden. > > > Vielleicht sollte es besser "Domänencontroller der Schule" heissen oder "Name > > > des Domänencontroller dieser Schule" oder "Domänencontroller-Name". > > > > Bitte noch eine kleine Änderung: Auf einem Singleserver ist es nicht notwendig, > > den Schulserver anzugeben (das Feld kann ausgeblendet werden), dies ist nur > > notwendig im Falle eines Multli-"Master"-Setups. > > Kleine Anmerkung dazu: > es darf in keinem Fall der Master angegeben werden. Das Importskript würde beim > create_ou den Master in einige Gruppen stecken, was dazu führt, dass der Master > nicht mehr den vollen Zugriff auf den LDAP-Baum besitzt, da die Gruppen in den > LDAP-ACLs verwendet werden. > Es wäre sinnvoll, wenn in einem Master-Slave-Setup der vom Benutzer angegebene > Hostname gegen den des Master geprüft und verweigert wird. Mit UCS 2.4 wurde der Hostname auch der Musterschule übergeben. Diesen Block habe ich u.a. entfernt: - eval "$(ucr shell)" - [...] - # create example school - /usr/share/ucs-school-import/scripts/create_ou "$ucsschool_defaultschoolname" "$hostname"
(In reply to comment #41) > Mit UCS 2.4 wurde der Hostname auch der Musterschule übergeben. Diesen Block > habe ich u.a. entfernt: > > - eval "$(ucr shell)" > - > [...] > - # create example school > - /usr/share/ucs-school-import/scripts/create_ou > "$ucsschool_defaultschoolname" "$hostname" Dann scheinen wir das Problem zwischenzeitlich schon gelöst zu haben. Ggf. haben die neuen LDAP-ACLs aus UCS3 ihren positiven Beitrag dazu geleistet.
* Ungültige Mailadressen werden nun korrekt abgefangen * Das Schul-DC Textfeld wird nach dem anlegen einer Schule zurückgesetzt
Bitte noch im Benutzer-Wizard aus dem Klassen-Freitextfeld eine Combo-Box erstellen. Die Klassen kann man ja gesondert über den Klassen-Wizard erstellen (werden dort auch die Klassennamen gestrimmt?).
(In reply to comment #44) > Bitte noch im Benutzer-Wizard aus dem Klassen-Freitextfeld eine Combo-Box > erstellen. Die Klassen kann man ja gesondert über den Klassen-Wizard erstellen > (werden dort auch die Klassennamen gestrimmt?). Die Klasse lässt sich nun über eine ComboBox auswählen. Darüber hinaus befindet sich rechts daneben ein Button, welcher den "Klasse hinzufügen"-Wizard öffnet. Wenn man nach dem Anlegen einer Klasse wieder zurück in das Modul navigiert, wird die Liste der verfügbaren Klassen automatisch erneuert. Leerzeichen am Anfang und Ende vom Klassennamen werden entfernt. Paket ist gebaut
Aktuell wird der Button auch beim Erstellen eines Lehrers oder Mitarbeiters angezeigt. Das sollte nicht der Fall sein, da hier auch die ComboBox zur Klassenauswahl ausgeblendet wird.
(In reply to comment #46) > Aktuell wird der Button auch beim Erstellen eines Lehrers oder Mitarbeiters > angezeigt. Das sollte nicht der Fall sein, da hier auch die ComboBox zur > Klassenauswahl ausgeblendet wird. Das ist nun auch gefixed. Paket ist gebaut.
*** Bug 27193 has been marked as a duplicate of this bug. ***
Es gibt gerade noch ein Problem, dass im Schulwizard das Feld für den Schul-DC nicht angezeigt wird, da vom Backend immer der gleiche Wert zurückgegeben wird.
(In reply to comment #49) > Es gibt gerade noch ein Problem, dass im Schulwizard das Feld für den Schul-DC > nicht angezeigt wird, da vom Backend immer der gleiche Wert zurückgegeben wird. Das ist gefixed; Paket baut gerade.
(In reply to comment #43) > * Ungültige Mailadressen werden nun korrekt abgefangen OK > * Das Schul-DC Textfeld wird nach dem anlegen einer Schule zurückgesetzt OK
(In reply to comment #45) > Die Klasse lässt sich nun über eine ComboBox auswählen. Darüber hinaus befindet > sich rechts daneben ein Button, welcher den "Klasse hinzufügen"-Wizard öffnet. > Wenn man nach dem Anlegen einer Klasse wieder zurück in das Modul navigiert, > wird die Liste der verfügbaren Klassen automatisch erneuert. > > Leerzeichen am Anfang und Ende vom Klassennamen werden entfernt. Das funktioniert (In reply to comment #46) > Aktuell wird der Button auch beim Erstellen eines Lehrers oder Mitarbeiters > angezeigt. Das sollte nicht der Fall sein, da hier auch die ComboBox zur > Klassenauswahl ausgeblendet wird. Das tritt nicht mehr auf. Verified
UCS@school 3.0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS@school erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"