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 shows:

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
    (Object: ElementWithAttributes)
  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
    (Object: SheetProviderContainer)
  File /usr/local/Zope-2.1.6-src/lib/python/OFS/DTMLDocument.py, line 166, in __call__
    (Object: loginForm)
  File /usr/local/Zope-2.1.6-src/lib/python/DocumentTemplate/DT_String.py, line 502, in __call__
    (Object: loginForm)
  File /usr/local/Zope-2.1.6-src/lib/python/DocumentTemplate/DT_Raise.py, line 128, in render
    (Object: 'LoginRequired')
LoginRequired: (see above)

Clue anyone?


> -----Original Message-----
> 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
> number of
> SQLMethods to query your database and some wrappers for these
> methods.  The SQLMethods are the only thing that has to care
> about the
> details of your database format.

Reply via email to