From: Alain S. <asp...@gm...> - 2007-03-19 18:37:20
|
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 <gar...@gm...> 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 > Pyt...@li... > 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 |