Thanks a lot, this worked perfectly! You really saved my day (or week, for that matter). I will rewrite the script when I have the time and maybe a better understanding of LDAP and Python-ldap.
Best regards, Lars Erik On Wed, Aug 13, 2008 at 3:28 PM, Michael Ströder <[EMAIL PROTECTED]> wrote: > Lars Erik Kolden wrote: >> >> ldapmodify: modify operation type is missing at line 26, entry >> "cn=audio,ou=Group,dc=ourdc,dc=no" >> [..] >> When I look in the LDAP docs, this looks reasonable, as it states that >> you ned an "add: memberUid" statement with the changetype: modify. But >> how come it worked before? And when I try to incorporate this into the >> LDIF generator script, which uses python-ldap, it just won't work. > > I don't know why it worked in the past. The LDIF generator script is wrong > since it uses module ldif for generating entry records (provided by a dict) > instead of providing a modification list (list type) which would make > LDIFWriter.unparse() to generate a change record. > > See __doc__ string in ldif.py: > > class LDIFWriter: > [..] > def unparse(self,dn,record): > """ > dn > string-representation of distinguished name > record > Either a dictionary holding the LDAP entry {attrtype:record} > or a list with a modify list like for LDAPObject.modify(). > """ > >> relevant code looked like this: >> >> ######### >> # add the new user to a set of default groups: >> # audio, cdrom, floppy, plugdev, video >> >> entry={ 'changetype' : ['modify'], >> 'memberUid': [username], >> } >> dn='cn=audio,ou=Group,dc=ourdc,dc=no' >> ldif_writer=ldif.LDIFWriter(newusers) >> ldif_writer.unparse(dn,entry) > > Should be: > > modlist=[(ldap.MOD_ADD,'memberUid',[username])] > ldif_writer.unparse(dn,modlist) > > BTW: Anyway I'd recommend to directly use a LDAP connection for this task, > not generate LDIF and then using command-line tools. This would give you > much better control in case of LDAP errors. > > Ciao, Michael. > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Python-LDAP-dev mailing list Python-LDAP-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/python-ldap-dev