Title: RE: [Zope] Q: LoginManager and SQL-US?
Thanks to Dan Pierson and J.Atwood for pointing me at the GUF/SQL
howto. I've beating my head against LM since. I even looked at
the source code (which might be more useful if I spoke Python...
Anyway, here's what I think I've figured out:
Four methods must be created under a UserSource, whether DTML
method, external, or whatever:
userExists - passed 'username', return 1 if exists.
userAuthenticate - passed 'username', 'password', return
1 if valid user.
userRoles - passed 'username', return user roles in either
space-delimited string, or list.
userDomains - passed 'username', return either a list of
valid domains (example?) or an empty list/string(?)
to leave it wide open.
How is that? Am I even getting close? It's worth noting that I
still haven't been able to get LM working on either of two
At home I got past userExists and userAuthenticate, but then kept
getting Forbidden. It appears that I'm not successfully
returning a list of roles back to the UserSource code. (When I
uncomment the stuff to report that from ForbiddenPage, my roles
are empty.) But is it possible that the real problem is the
domains, or something else?
At work, I can't seem to get past the login screen. I've tried
dropping dtml-raise ... and python raise all over the damn
place and it appears that program flow is going nowhere near
those four methods or their wrappers in UserSource.py. The
Traceback (innermost last):
File /usr/local/Zope-2.1.6-src/lib/python/ZPublisher/Publish.py, line 214, in publish_module
File /usr/local/Zope-2.1.6-src/lib/python/ZPublisher/Publish.py, line 179, in publish
File /usr/local/Zope-2.1.6-src/lib/python/Zope/__init__.py, line 202, in zpublisher_exception_hook
File /usr/local/Zope-2.1.6-src/lib/python/ZPublisher/Publish.py, line 151, in publish
File /usr/local/Zope-2.1.6-src/lib/python/ZPublisher/BaseRequest.py, line 446, in traverse
File /usr/local/Zope-2.1.6-src/lib/python/Products/LoginManager/LoginManager.py, line 149, in lm_unauth
File /usr/local/Zope-2.1.6-src/lib/python/OFS/DTMLDocument.py, line 166, in __call__
File /usr/local/Zope-2.1.6-src/lib/python/DocumentTemplate/DT_String.py, line 502, in __call__
File /usr/local/Zope-2.1.6-src/lib/python/DocumentTemplate/DT_Raise.py, line 128, in render
LoginRequired: (see above)
From: Dan L. Pierson [mailto:[EMAIL PROTECTED]]
Wilkinson Charlie E writes:
1. Can LoginManager be (easily?) made to meet my specific need?
Probably, it includes a GenericUserSource, which is essentially a
clone of Generic User Folder (see below).
2. Has anyone done an SQL UserSource yet, or can anyone
give me a clue how to make one?
You should look at Generic User Folder, and the HowTo that
tell how to
set it up with Postgressql. Basically, you need to create a
SQLMethods to query your database and some wrappers for these
methods. The SQLMethods are the only thing that has to care
details of your database format.