On Sat, 7 Oct 2000, ed colmar wrote:
I've managed to get loginManager to install, but I am very confused as to what to do with it.
I was confused too :) Now I have working instalation of LoginManager-0-8-7a1. It retrieves users' data from ZODB, but it may be helpfull to understand how to implement any other source, i.e. MySQL. Probably I did it very dirty way, but it works ;) First, I created my own UserSource class, adding it to source file lib/python/Products/LoginManager/UserSources.py. Here comes the diff: 7c7 < from Products.ZPatterns.PlugIns import defaultConstructors ---
from Products.ZPatterns.PlugIns import defaultConstructors, PlugIn 478a479,496
class OloloUserSource(BasicUserSource):
"""Moje własne źródło użytkowników"""
meta_type = "Ololo User Source" __plugin_kind__ = "User Source"
def retrieveItem(self,name): Uzytkownicy=getattr(self.aq_parent, 'Uzytkownicy', None) return getattr(Uzytkownicy, name, None)
489a508,514
)
context.registerPlugInClass( OloloUserSource, permission = 'Add Ololo User Source', constructors = defaultConstructors(OloloUserSource, globals()),
Method retrieveItem have to return user object with given name. I have users inside folder Uzytkownicy beside acl_users. Next thing to do is to create class representing users. It must have LoginManager:LoginUser as a base class. So I made such ZClass. This class has methods authenticateUser, domainsForUser, rolesForUser, which do real work. (Users in folder Uzytkownicy are instances of that ZClass.) This class contains some properties of user - login (it's just object's id), name, other data. (Currently I store passwords externally, because I need them to do POP3 authentication.) Then, on management tab "User Sources" of your LoginManager instance, add instance of your UserSource class. Check also for proper settings on LoginMethods tab. ololo@zeus.polsl.gliwice.pl /--------------------------------------\ | `long long long' is too long for GCC | \--------------------------------------/