[Zope] Different Login Screens for Management and User?

Ty Sarna tsarna@endicor.com
6 Mar 2000 20:18:19 GMT


In article <Pine.LNX.4.04.10003021600070.11976-100000@gaaros.msrc.sunysb.edu>,
Pavlos Christoforou  <pavlos@gaaros.com> wrote:
> Hmm what is a LoginManager? Is it a product similar to GUF? If yes where
> can we get it from? I am in need of such a beast so I want to explore the
> possibilities.

LoginManager is a thing that aims to replace user folders.  It accepts
plugin User Sources (which know about users) and Login Methods (plugins
for different methods of logging in -- things like Basic Auth, Cookie
Auth, etc).

You can get it from the ZopePTK CVS. (It's useable without PTK, though
-- there's nothing PTK-specific about it. It's just that it's
particularly useful for PTK)

LoginManager currently comes with a default User Source called Generic
User Source (GUS), that is a GUF-like roll-your-own system.  It uses
GUF-compatible methods (userExists, userRoles, etc), so converting any
GUF-using site to a LM site should be pretty easy.  We plan to write
another User Source that is a simple ZODB-based plugin that parallels the
current plain User Folder.  Other existing User Folders (etcUserFolder,
etc) could/should be converted to user sources. 

One advantage is that you can have more than one user source, so if you
need to have employee logins from your corporate LDAP directory and
customer logins from your Oracle database, you can do that. The
implementations of each can be completely separate and reuseable.

Another advantage is that there is no longer the "n times m" problem of
login methods.  If someone writes a PostGresSQLUserFolder that does SSL
client certificates, there's no easy way for you to use that SSL client
certificate capability with etcUserFolder.  But with LoginManager, if
someone writes a SSL client certificate Login Method and someone else
makes an etcUserSource, they automagically work together.

There are some other cool features too, and more coming.

By the way, for those of you who were at IPC8 and were confused by the
RIPP Patterns talk (which is everyone who attended, I think ;->),
LoginManager is so far a good example of at least the RI part of it.

LoginManager is the Implementor for users (it's just called acl_users
instead of I_User :->). User Sources are really Racks. 

The "things from different authors automatically work together" nature
of LoginManager is exatly what RIPP is for. Now that we have an example,
maybe we can try to explain it better and get other people using it for
other things :-)