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