Fix encoding for setattr/addattr/delattr

Attribute values passed by --{set,add,del}attr parameters were
normalized and validated using appropriate parameter, but were
never encoded for the backend. This make prevents manipulation
with dirsvr BOOL attributes where framework tries to pass
boolean value instead of encoded "TRUE"/"FALSE" values.

https://fedorahosted.org/freeipa/ticket/2418
This commit is contained in:
Martin Kosek 2012-02-22 13:41:23 +01:00 committed by Rob Crittenden
parent d55d8bfa7e
commit eeee8e1c6e

View File

@ -782,6 +782,8 @@ last, after all sets and adds."""),
except errors.ValidationError, err:
(name, error) = str(err.strerror).split(':')
raise errors.ValidationError(name=attr, error=error)
if self.api.env.in_server:
value = self.params[attr].encode(value)
if append and attr in newdict:
if type(value) in (tuple,):
newdict[attr] += list(value)