[Freeipa-devel] [PATCH] 142 Improve default user/group object class validation
Alexander Bokovoy
abokovoy at redhat.com
Tue Oct 11 10:16:46 UTC 2011
On Tue, 11 Oct 2011, Martin Kosek wrote:
> On Tue, 2011-10-11 at 12:01 +0300, Alexander Bokovoy wrote:
> > On Tue, 11 Oct 2011, Martin Kosek wrote:
> > > @@ -212,6 +216,24 @@ class config_mod(LDAPUpdate):
> > > raise errors.ValidationError(
> > > name=k, error='attribute "%s" not allowed' % a
> > > )
> > Could you please also (in a separate patch) fix the above and others
> > by adding translations? Other exception messages in
> > plugins/config.py are designed to be used for user interactions but
> > this one is not localized.
>
> Patch based on 142 for config plugin i18n fix attached. I created a
ACK.
> ticket to fix all of these issues in 3.0 branch:
>
> https://fedorahosted.org/freeipa/ticket/1953
Thanks!
> >
> > > +
> > > + for (attr, obj) in (('ipauserobjectclasses', 'user'),
> > > + ('ipagroupobjectclasses', 'group')):
> > > + if attr in entry_attrs:
> > > + objectclasses = entry_attrs[attr] + self.api.Object[obj].possible_objectclasses
> > would it make sense to do sort(set(objectclasses)) to get unique list
> > before using it further? Just a thought. get_allowed_attributes() will
> > go to LDAP's schema to consult about the attributes and it seems to me
> > we'd better not to do this multiple times for the same.
>
> I added a list(set()) to remove duplicates, I don't think it is
> necessary to sort it.
Yes, this is fine.
> > > + new_allowed_attrs = ldap.get_allowed_attributes(objectclasses,
> > > + raise_on_unknown=True)
> > > + checked_attrs = self.api.Object[obj].default_attributes
> > > + if self.api.Object[obj].uuid_attribute:
> > > + checked_attrs.append(self.api.Object[obj].uuid_attribute)
> > > + for obj_attr in self.api.Object[obj].default_attributes:
> > Shouldn't this be checked_attrs?
> >
>
> Correct. The previous version worked because .append modified the
> original list. Fixed.
Hm..
+ checked_attrs = self.api.Object[obj].default_attributes
doesn't change anything -- you still get a reference to
default_attributes and through
checked_attrs += ....
you'd modify the original one. Wouldn't the following be more correct:
+ checked_attrs = copy(self.api.Object[obj].default_attributes)
?
--
/ Alexander Bokovoy
More information about the Freeipa-devel
mailing list