|
From: Garland, K. R <gar...@gm...> - 2007-03-19 19:09:37
|
well i get the error still. but i made a mistake earlier and it looks
like my string is not a true dictionary and modlist is unhappy with
it. The shell version of my script is a bit different and doesn't have
this issue.
Traceback (most recent call last):
File "./ldapadd.py", line 23, in ?
mymodlist = ldap.modlist.addModlist(newentry)
File "/usr/lib/python2.4/site-packages/ldap/modlist.py", line 34, in
addModlist
for attrtype in entry.keys():
AttributeError: 'str' object has no attribute 'keys'
Now I'll dive into converting it into a dictionary. Thanks, looks like
the error is on my part.
On 3/19/07, Alain Spineux <asp...@gm...> wrote:
>
> 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
>
> -------------------------------------------------------------------------
> 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
>
>
|