Univention Bugzilla – Bug 24341
Vereinfachte Suche, Attribute einschränken
Last modified: 2022-08-26 14:17:36 CEST
> - Bei der Suche kann man nach recht exotischen Attributen suchen, z.B. bei > Benutzern nach "gesperrte Anmeldeverfahren" oder bei Gruppen > nach "Samba-Gruppentyp". Grundsätzlich ist das ok, allerdings wird dem > Sucheingabefeld ein Dropdown, in dem man nichts auswählen kann. Erwarten > wprde ich, dass dort dann bei "Samba-Gruppentyp" z.B. die möglichen > Samba-Gruppentypen auswählbar sind.
Das eigentliche Problem ist behoben. Ich denke dennoch, das wir per Default die Attribute einschränken sollten.
*** Bug 25099 has been marked as a duplicate of this bug. ***
Auch nochmal in der internen Diskussion aufgekommen: > - Der für Substring-Suche führende und abschliessende Asterisk sollte nicht > notwendig sein, d.h. wenn ich "mueller" eingebe. sollte auch "hmueller" > oder "mueller@univention.de" gefunden werde.
(In reply to comment #3) > Auch nochmal in der internen Diskussion aufgekommen: > > > - Der für Substring-Suche führende und abschliessende Asterisk sollte nicht > > notwendig sein, d.h. wenn ich "mueller" eingebe. sollte auch "hmueller" > > oder "mueller@univention.de" gefunden werde. → in der vereinfachten Suchen bräuchte dann nur ein einfaches Suchfeld angezeigt zu werden ohne Dropdown-Menüs.
Die Suche nach Gruppennamen könnte ggf. auch berücksichtig werden (Bug 27613)
Zunächst auf 3.0-x geschoben, da es nicht zwingend für 3.0-2 umgesetzt werden muss.
UCS 3.1 will be the next release.
*** Bug 28235 has been marked as a duplicate of this bug. ***
(In reply to comment #3) > Auch nochmal in der internen Diskussion aufgekommen: > > > - Der für Substring-Suche führende und abschliessende Asterisk sollte nicht > > notwendig sein, d.h. wenn ich "mueller" eingebe. sollte auch "hmueller" > > oder "mueller@univention.de" gefunden werde. Die Handhabung von Asterisks kann mit univention-management-console 5.0.13-1.667.201208161801 einfacher werden. Vorher: def method(self, request): pattern = request.options.get('pattern') if not pattern.endswith('*'): pattern += '*' # ... did i think of every detail? # do other modules behave the same way? pattern = re.compile(pattern) Nachher: @sanitize(pattern=PatternSanitizer()) def method(self, request): pattern = request.options.get('pattern') # already a reg exp. is handled uniformly throughout umc if used everywhere!
Der PatternSanitizer wurde benutzt in: univention-management-console-module-ucr 2.0.1-1.35.201209251248 univention-management-console-module-top 2.0.1-1.18.201209251306 univention-management-console-module-services 2.0.2-1.13.201209251316 an UVMM wage ich mich nicht ran. Für den UDM muss ein neuer geschrieben werden (da LDAP-Suche, nicht String-Suche per RegExp)
LDAPSearchSanitizer wurde hinzugefügt und jede UDM-Klasse angeschaut, welche Attribute denn wohl per Default durchsucht werden sollen. univention-directory-manager-modules 8.0.38-1 und univention-management-console-module-udm 3.0.12-1.239.201209251917
in ucr/query: key=ChoicesSanitizer(['all', 'key', 'value', 'description'], default='variable') aus 'variable' muss wohl 'value' gemacht werden ;)
Vielleicht, vielleicht auch nicht. Das ist tatsächlich ein Fehler. Aber einer, der auch schon vorher existierte. Siehe die gelöschten Zeilen in Revision 35844 Streng genommen also ein eigener Bug, ich habe es nur falsch übernommen. Mit eben diesem Fehler hätte die vorherige Funktion ohne Angabe von "key" die Zusammenarbeit ververweigert (weil "variable" nichts Sinnvolles ergeben hätte), also setze ich "key" jetzt auf required, damit die Funktion sich sehr ähnlich verhält und wenigstens nicht abstürzt. Da die Funktion ohnehin nur vom Frontend benutzt wird und dieses "key" immer mitschickt, ist das alles auch nicht so wichtig. Wenn sich das irgendwann mal ändert, kann man das ja in einem neuen Enhancement Bug noch mal überprüfen, was ein guter default wäre. Ich persönlich wäre bei Auslassung ja entweder für "key" oder "all". univention-management-console-module-ucr 2.0.2-1
Cool, bei mir funktioniert die Suche in "allen" Attributen. Im UDM kann für die vereinfachte Suche noch die ComboBox "Eigenschaft" ausgeblendet werden. Es wäre gut, wenn die Default-Search-Attribute, die vom Postinst des UMC-UDM-Moduls mitgebracht werden, beim Update zurückgenommen (sollten sie noch auf den gleichen Wert gesetzt seien) und nicht wieder neu gesetzt werden, so dass der Standard "alle Attribute" ist: > univention-config-registry set directory/manager/web/modules/users/user/search/default?username \ > directory/manager/web/modules/dhcp/service/search/default?service
Der Aufruf für udm/syntax/choices (bspw. für Netzwerk- und DNS-ComboBoxen bei Computern) liefert eine leere Liste zurück: > umc-command -U Administrator -P univention -f computers/computer udm/syntax/choices -o syntax=network Der dazugehörige Filter sieht nicht ganz korrekt aus: > Searching for LDAP objects: container = , filter = (|(netmask=None)(name=None)(network=None)), superordinate = None
Das Postinst wurde angepasst. Alle default-search Attribute == "name" werden zurückgesetzt. Die ComboBox mit den Attributen wird in der einfachen Suche ausgeblendet. Dadurch "springt" das Formular ganz schön, wenn man es erweitert... Fixed in univention-management-console-module-udm 3.0.13-1.240.201209261838
Durch das Entfernen der Default Attributes == "name" wurde UDM's MultiObjectSelect schwer zu bedienen: Wollte man etwa die Vorgesetzten auswählen, so suchte man seitdem nicht mehr in username, sondern in "Abteilungsnummer" (weil es das erste in der Liste war). Ich habe auch hier die Standardattribute als Vorauswahl in dieses Widget gebracht und dabei noch einen Sanitizer benutzt, damit man nach "(" suchen kann und "*" vorne und hinten angehängt werden. univention-management-console-module-udm 3.0.14-1.241.201210011212
In den property_descriptions kann include_in_default_search auf 1 gesetzt werden, um die property suchbar zu machen. diff <(ack-grep -l property_descriptions ) <(ack-grep -l include_in_default_search) OK: im postinst werden alles "name" defaultsuchen gelöscht OK: es wird nicht der erste Eintrag als default im MultiSelect angezeigt. Changelog ist OK getestet mit: univention-management-console-module-udm (3.0.24-1) univention-directory-manager-modules (8.0.50-1) Die pattern-tests waren auch erfolgreich: univention-management-console-module-ucr (2.0.2-1) univention-management-console-module-top (2.0.1-1) univention-management-console-module-services (2.0.2-1)
UCS 3.1-0 has been released: http://forum.univention.de/viewtopic.php?f=54&t=2125 If this error occurs again, please use "Clone This Bug".