Univention Bugzilla – Bug 27058
False Wert einer OkOrNot wird vom UMC Frontend nicht an das Backend geschickt
Last modified: 2012-07-20 15:25:15 CEST
Wählt man eine CheckBox mit der OkOrNot Syntax ab, so wird dies nicht an das Backend geschickt. Hat man beispielsweise ein ext. Attr. mit Syntax OkOrNot und default==OK dann kann man über die UMC kein Objekt anlegen, das dieses Attribut nicht gesetzt hat.
Das Problem konnte weiter eingegrenzt werden: Beim Anlegen eines UDM-Objektes wird beim Zusammenbauen der zu setzenden Werte folgendes geprüft: // get only non-empty values umc.tools.forIn(vals, dojo.hitch(this, function(iname, ival) { if (!(dojo.isArray(ival) && !ival.length) && ival) { newVals[iname] = ival; } })); Damit werden boolsche Attribute mit dem Wert false nicht übernommen. Das ist in diesem Fall schlecht, da der Defaultwert true (bzw. OK) ist.
(In reply to comment #1) > Das Problem konnte weiter eingegrenzt werden: Beim Anlegen eines UDM-Objektes > wird beim Zusammenbauen der zu setzenden Werte folgendes geprüft: > > > // get only non-empty values > umc.tools.forIn(vals, dojo.hitch(this, function(iname, ival) { > if (!(dojo.isArray(ival) && !ival.length) && ival) { > newVals[iname] = ival; > } > })); > > Damit werden boolsche Attribute mit dem Wert false nicht übernommen. Das ist in > diesem Fall schlecht, da der Defaultwert true (bzw. OK) ist. Wäre es vielleicht sinnvoll bool-Werte ohne wenn und aber zu übertragen?
(In reply to comment #2) > (In reply to comment #1) > Wäre es vielleicht sinnvoll bool-Werte ohne wenn und aber zu übertragen? Ja natürlich :-)
Zur Korrektur muss zum einen umc.tools.isFalse() erweitert werden, dass auch auf "not" geprüft wird. Zum anderen muss die oben genannte Schleife wie folgt angepasst werden: // get only non-empty values umc.tools.forIn(vals, dojo.hitch(this, function(iname, ival) { if (typeof(ival) == 'boolean' || (!(dojo.isArray(ival) && !ival.length) && ival)) { newVals[iname] = ival; } })); typeof(true) == 'boolean'
(In reply to comment #4) > Zur Korrektur muss zum einen umc.tools.isFalse() erweitert werden, dass auch > auf "not" geprüft wird. Zum anderen muss die oben genannte Schleife wie folgt > angepasst werden: Die Korrektur wurde eingecheckt. Changelogeintrag wurde erstellt.
univention-management-console-module-udm (1.0.277-1) unstable; urgency=low
OK, Werte werden initial richtig gesetzt und später auch richtig aus dem LDAP Attribut in die Checkbox übernommen (mit ext. Attribut mit OkOrNot getestet). Changelog Eintrag OK (ich habe ihn von UDM-Modules nach UMC verschoben)
UCS 3.0-2 has been released: http://forum.univention.de/viewtopic.php?f=54&t=1905 If this error occurs again, please use "Clone This Bug".