Fwd: Error modlist.py in addModlist

Alain Spineux aspineux at gmail.com
Mon Mar 19 19:37:18 CET 2007


I didn't read your code, but I know ldap dont like python's unicode string.

Convert any strings coming from your web interface into string, using str().

Hope this help


On 3/19/07, Garland, Ken R <garlandkr at gmail.com> wrote:
>
> I've sliced together a script to add users to ldap, which works great.
> however, now i'm implementing it into a webapp and having some issues.
>
> --------------------
> Spyce exception
> File:   /home/kgarland/downloads/spyce- 2.1/www/newadd.spy
> Message:
>
> AttributeError: 'str' object has no attribute 'keys'
>
> Stack:  /usr/lib/python2.4/site-packages/ldap/modlist.py:34, in
> addModlist:
>
> for attrtype in entry.keys ():
>
> newadd.spy:19, in passcheck:
>                 mymodlist = ldap.modlist.addModlist(entry)
> --------------------
>
> My code causing the issue:
>
> --------------------
> def passcheck(self, api, passwd, firstname, lastname, vamcdrop):
>         import string, sys, ldap, crack, hashlib, base64
>         try:
>                 crack.VeryFascistCheck(passwd)
>         except ValueError, reason:
>                 print("Please use a different password, %s." % reason)
>         else:
>                 l=ldap.initialize("ldaps://null")
>                 l.bind_s('cn=removed,dc=removed,dc=removed', 'removed')
>                 y = hashlib.sha1(passwd).digest()
>                 base64encode = base64.encodestring(y)
>                 userpass = string.rstrip(base64encode)
>                 uid = firstname.lower() + "." + lastname.lower()
>                 mydn = "uid=" + uid + ",ou=VA,dc=pharmacy,dc=com"
>                 entry = "{'uid': ['" + uid + "'], 'objectClass':
> ['top', 'inetOrgPerson'], 'userPassword': ['" + '{SHA}' + userpass +
> "'], 'vamc': ['" + vamcdrop + "'], 'sn': ['" + lastname + "'],
> 'givenName': ['" + firstname + "'], 'cn': ['" + firstname + " " +
> lastname + "']}"
>                 mymodlist = ldap.modlist.addModlist(entry)
>                 l.add_s(mydn, mymodlist)
>                 print "Adding the following information into LDAP:"
>                 print "<br>"
>                 print entry
> --------------------
>
> Looks like modlist is not happy with the string being presented to it.
> Printing the entry variable gives the same results for both the webapp
> and commandline.
>
> Web:
> {'uid': ['null.null'], 'objectClass': ['top', 'inetOrgPerson'],
> 'userPassword': ['{SHA}null'], 'vamc': ['null'], 'sn': ['null'],
> 'givenName': ['null'], 'cn': ['null null']}
>
> Shell:
> {'uid': ['null.null'], 'objectClass': ['top', 'inetOrgPerson'],
> 'userPassword': ['{SHA}null'], 'vamc': ['null'], 'sn': ['null'],
> 'givenName': ['null'], 'cn': ['null null']}
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share
> your
> opinions on IT & business topics through brief surveys-and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Python-LDAP-dev mailing list
> Python-LDAP-dev at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/python-ldap-dev
>



-- 
--
Alain Spineux
aspineux gmail com
May the sources be with you


-- 
--
Alain Spineux
aspineux gmail com
May the sources be with you
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ldap/attachments/20070319/5c086a8e/attachment.html>


More information about the python-ldap mailing list