"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?