[Zope-dev] LM and user objects
Bill Anderson
bill@libc.org
Tue, 06 Jun 2000 16:03:50 -0600
"Phillip J. Eby" wrote:
>
> At 02:21 PM 6/6/00 -0600, Bill Anderson wrote:
> >
> >I beleive I have the basic LM concept grasped. I understand that I need
> >a 'User' Object, ostensibly can be done in Python or ZClasses. For now,
> >I will look at ZClasses for experimentation.
> >
> >So, I beleive that to set up a ZODB-based User for LM, I need to create
> >the UserObject's ZClass. What do I need to subclass, if any, from?
>
> >From Python: Products.LoginManager.LoginUser
> >From Zope: "ZClass_for_LoginUser"
Cool. I tried the ZClass route (less restarts ;) gave it Fname,Lname,and
zpasswd as fields. (ISTR something about the password needing to be a
field)
> >Once I get that set up, I add property sheets for the user where? The
> >ZClass?
>
> To add sheets for the class, do it in the ZClass. You will then need
> AttributeProvider support for the properties (which if you're doing a
> Persistent user source, means simply that you leave the default "Persistent
> Internal Attribute Provider" active for all attributes). Alternatively,
> you can programmatically add a propertysheet to an individual user at
> "runtime", but you will have to create the schema for it at the same time.
OK.
> >Once I get that set up, how do I add a user? Would one method be to go
> >into the acl_users(LM) and add a User? What about adding them
> >programmatically? I looled at the API.txt, but it wasn't helpful in this
> >regard. :(
>
> I think if you derive your UserSource from the BasicUserSource or
> UserSource class in LoginManager, you should be able to simply call the
> usersource's newItem(id) method to get a new, empty user object.
> Manipulating propertysheets on it will then let you set properties.
I am using the deafult UserSource that comes with LM for the moment (one
step at a time ;)
When I try to add through the manage interface, I get:
Error Type: KeyError
Error Value: _v_rack
So I judge that this interface to be a no-workie.
So I tried the form->method method, and I get:
Error Type: NotFound
Error Value: None
And no help in the traceback. :(
What am I missing?