[Zope-PTK] LDAP, LoginManager, PTK and DataSkins

daniel.fulton@delphiauto.com daniel.fulton@delphiauto.com
Tue, 17 Oct 2000 00:47:12 +0800


This note has been posted to:
    zope-ptk@zope.org
    zope-admin@zope.org
_____

Sorry, if this has been answered in detail before; did my due diligence
regarding DataSkins, LoginManager, but I still don't understand especially with
me being dumb and all.

I found a great deal of information on the ZPatterns wiki regarding OO and
concept of the above subject but no real-world hard coded example.

If someone will mentor me down the right path, I'll post entire code with how-to
docs complete start to finish.  If already
out there and no bother, could you post URL to me.

Problem:

Need to hit LDAP server through LoginManager/PTK for authentication and then to
track certain LDAP attributes specific to each dept in our co.

Here's where I am:

Using LoginManager 0.8.7a1 and ZPatterns 0.4.2a3 (version file says 0.4.2a2) and
ZopeLDAP 1.0b5.  (I know it's all beta, just in proof-of-concept mode).  PTK
0.9.0 (collector pending for _ZClass_For_Base added to ProductContext.py, etc.)
--

Under acl_users folder:    Specialist  --->  Not changed using rack UserSource.

1)  created ZLDAP connection within rack UserSource
      named ---->  ldapConnect

2)  created ZLDAP filter method (to pull attrs for specific user
      from LDAP server) within rack UserSource object
      named ----> ldapGetUser

     Args:  username

                uid=<dtml-var username>


Get fuzzy at DataPlugin and DataSkin abstraction,  see below:


Data Plugin:

3) create GAP Data Plugin named ---> ldapGAP

    fromexp =   ldapGetUser(uid pwd roles domains dept ETC)
    attrexp = uid pwd roles domains

    Question:  Or should I have put the LDAP filter method above as a method
    of this plugin?


DataSkin:

4) next create ZClass with base LoginUser
     named ----> LDAPMember

     *****
     methods here to auth / manage users / members

     *****

     Question: do I need to base class DataSkin as well?
     I don't see a need for it since LoginUser takes
     DataSkin properties now.  But earlier docs on wiki
     suggested this.

 5) go to rack and change storage to LDAPMember

Am I heading down right path?

Again, sorry if the info is already out there but I need an example
to clearly see it.

--------------------
Daniel Fulton
DAS China Ltd.
Shanghai 200122 PRC
TEL: 86 (021) 6875 8866 ext 7403
daniel.fulton@delphiauto.com