RE: Subject: [Zope-dev] change ownership

2001-05-11 Thread Tim McLaughlin

Magnus,

OK, here goes the evil workaround
It seems that getUser does not return an acquisition wrapped object, so make
your external method this to wrap it (thus giving ownerinfo the ability to
determine the user db):

def setOwner(self, username):
#note: this assumes that the closest User database houses 'username'
user = self.acl_users.getUser(username)
self.changeOwnership(user.__of__(self.acl_users))
return 'done.'

--Tim McLaughlin (tmclaugh)

-Original Message-
From: Magnus Heino (Rivermen)
To: 'Tim McLaughlin'; Magnus Heino (Rivermen)
Sent: 5/11/01 1:20 AM
Subject: SV: Subject: [Zope-dev] change ownership


 could you give me a url, name  pw, and let me take a look at 
 the zclass?

Nope, I'm doing this on my laptop behind a firewall.

But, this is how to reproduce it;


This is my external method:

[magnus@daysleeper Extensions]$ cat Owner.py
def setObjectOwner(self, username):
self.changeOwnership(self.acl_users.getUser(username))
return '%s is now the owner of %s' % (username, self.id)
 
def getObjectOwner(self):
return self.getOwner()
[magnus@daysleeper Extensions]$

Goto Control_Panel/Products. Add a product 'FooProduct'. Enter the
FooProduct and create a ZClass with id and metatype 'FooClass'.

Enter the FooClass and add a External Method. Set Id and Function Name
to
'setObjectOwner'. Module name is 'Owner'.

Go to the Root zope folder. It contains a standard acl_users.

Add a FooClass named 'foo'.

Call the external method on the object like this:

http://192.168.237.105:8080/foo/setObjectOwner?username=magnus

magnus is my username that lives in the acl_users.

You get the Attributeerror on aq_inner. 

Any clues? :-P

Thanks.

/Magnus

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



RE: Subject: [Zope-dev] change ownership

2001-05-10 Thread Tim McLaughlin

I call the external method like this from DTML...

set_owner(restrictedTraverse(path_to_user)),

where path to user is a physical path, but I'm using the ZUserFolder, so I
can use the restrictedTraverse to get to users.  UserFolder has a different
API.  You could do this if your acl_users is a standard UserFolder...

set_owner(acl_users.getUser(user_name))

in DTML or make your external method this...

def set_owner(self, user_name):
  self.changeOwnership(self.acl_users.getUser(user_name))

OK, so that should keep you busy for a while.  Anyway, the point is that the
parameter to changeOwnership is a User _object_.  Good luck.

--Tim

-Original Message-
From: Magnus Heino (Rivermen) [mailto:[EMAIL PROTECTED]]
Sent: Thursday, May 10, 2001 7:25 AM
To: 'Tim McLaughlin'; '[EMAIL PROTECTED]'; Magnus Heino (Rivermen)
Subject: SV: Subject: [Zope-dev] change ownership



I can get it to work :-/

I get an attributeerror on aq_inner in lib/python/AccessControl/Owned.py,
line 302, in ownerInfo

Seems as if the user i provide isn't of the right type?

How do you use your method? How is it being called?

/Magnus

 Magnus,
 No, changeOwnership is not exposed for TTW calling.  But you 
 can expose it
 through an external method...  I used this one on a ZClass.
 
 def set_owner(self, user):
 self.changeOwnership(user)
 return

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



RE: Subject: [Zope-dev] change ownership

2001-05-10 Thread Tim McLaughlin

What kind of UserFolder are you using... LoginManager or something?

-Original Message-
From: Magnus Heino (Rivermen) [mailto:[EMAIL PROTECTED]]
Sent: Thursday, May 10, 2001 9:13 AM
To: 'Tim McLaughlin'; Magnus Heino (Rivermen)
Cc: '[EMAIL PROTECTED]'
Subject: SV: Subject: [Zope-dev] change ownership



 def set_owner(self, user_name):
   self.changeOwnership(self.acl_users.getUser(user_name))
 
 OK, so that should keep you busy for a while.  Anyway, the 

Not long enough :-P

 point is that the
 parameter to changeOwnership is a User _object_.  Good luck.

Ive got this external method in a zclass:

def setObjectOwner(self, username):
self.changeOwnership(self.acl_users.getUser(username))

I call it like http://localhost:8080/myobject/setObjectOwner?username=foo
and get this error:



  Zope Error
Zope has encountered an error while publishing this resource.

Error Type: AttributeError
Error Value: aq_inner






Troubleshooting Suggestions

The URL may be incorrect. 
The parameters passed to this resource may be incorrect. 
A resource that this resource relies on may be encountering an error. 
For more detailed information about the error, please refer to the HTML
source for this page. 

If the error persists please contact the site maintainer. Thank you for your
patience. 
 



Traceback (innermost last):
  File /usr/home/magnus/www/Zope-2.3.2-src/lib/python/ZPublisher/Publish.py,
line 223, in publish_module
  File /usr/home/magnus/www/Zope-2.3.2-src/lib/python/ZPublisher/Publish.py,
line 187, in publish
  File /usr/home/magnus/www/Zope-2.3.2-src/lib/python/Zope/__init__.py, line
221, in zpublisher_exception_hook
(Object: PLATS_1)
  File /usr/home/magnus/www/Zope-2.3.2-src/lib/python/ZPublisher/Publish.py,
line 171, in publish
  File /usr/home/magnus/www/Zope-2.3.2-src/lib/python/ZPublisher/mapply.py,
line 160, in mapply
(Object: setObjectOwner)
  File /usr/home/magnus/www/Zope-2.3.2-src/lib/python/ZPublisher/Publish.py,
line 112, in call_object
(Object: setObjectOwner)
  File
/usr/home/magnus/www/Zope-2.3.2-src/lib/python/Products/ExternalMethod/Exter
nalMethod.py, line 262, in __call__
(Object: setObjectOwner)
(Info: ((FooObject instance at 873bd78, 'david'), {}, None))
  File /usr/home/magnus/www/Zope-2.3.2-src/Extensions/Owner.py, line 2, in
setObjectOwner
(Object: PLATS_1)
  File
/usr/home/magnus/www/Zope-2.3.2-src/lib/python/AccessControl/Owned.py, line
168, in changeOwnership
(Object: PLATS_1)
  File
/usr/home/magnus/www/Zope-2.3.2-src/lib/python/AccessControl/Owned.py, line
302, in ownerInfo
AttributeError: (see above)

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )



RE: Subject: [Zope-dev] change ownership

2001-05-10 Thread Tim McLaughlin

Do you have multiple acl_users objects in the acquisition context of the
object?  Because if you do and the self.acl_users will acquire (possibly)
the wrong user database.  If that's not the problem, I'm gonna have to let
it cook, and I'll probably come up w/ somethin' later.

--Tim

plug You could also try a ZUserFolder and use restrictedTraverse if you
want. :-) /plug


-Original Message-
From: Magnus Heino (Rivermen) [mailto:[EMAIL PROTECTED]]
Sent: Thursday, May 10, 2001 9:23 AM
To: 'Tim McLaughlin'; Magnus Heino (Rivermen)
Cc: '[EMAIL PROTECTED]'
Subject: SV: Subject: [Zope-dev] change ownership



The one that comes with Zope.

/Magnus

 -Ursprungligt meddelande-
 Från: Tim McLaughlin [mailto:[EMAIL PROTECTED]]
 Skickat: den 10 maj 2001 15:26
 Till: 'Magnus Heino (Rivermen)'; Tim McLaughlin
 Kopia: '[EMAIL PROTECTED]'
 Ämne: RE: Subject: [Zope-dev] change ownership
 
 
 What kind of UserFolder are you using... LoginManager or something?
 
 -Original Message-
 From: Magnus Heino (Rivermen) [mailto:[EMAIL PROTECTED]]
 Sent: Thursday, May 10, 2001 9:13 AM
 To: 'Tim McLaughlin'; Magnus Heino (Rivermen)
 Cc: '[EMAIL PROTECTED]'
 Subject: SV: Subject: [Zope-dev] change ownership
 
 
 
  def set_owner(self, user_name):
self.changeOwnership(self.acl_users.getUser(user_name))
  
  OK, so that should keep you busy for a while.  Anyway, the 
 
 Not long enough :-P
 
  point is that the
  parameter to changeOwnership is a User _object_.  Good luck.
 
 Ive got this external method in a zclass:
 
 def setObjectOwner(self, username):
 self.changeOwnership(self.acl_users.getUser(username))
 
 I call it like 
 http://localhost:8080/myobject/setObjectOwner?username=foo
 and get this error:
 
 
 
   Zope Error
 Zope has encountered an error while publishing this resource.
 
 Error Type: AttributeError
 Error Value: aq_inner
 
 
 
 --
 --
 
 
 Troubleshooting Suggestions
 
 The URL may be incorrect. 
 The parameters passed to this resource may be incorrect. 
 A resource that this resource relies on may be encountering an error. 
 For more detailed information about the error, please refer 
 to the HTML
 source for this page. 
 
 If the error persists please contact the site maintainer. 
 Thank you for your
 patience. 
  
 
 
 
 Traceback (innermost last):
   File 
 /usr/home/magnus/www/Zope-2.3.2-src/lib/python/ZPublisher/Publish.py,
 line 223, in publish_module
   File 
 /usr/home/magnus/www/Zope-2.3.2-src/lib/python/ZPublisher/Publish.py,
 line 187, in publish
   File 
 /usr/home/magnus/www/Zope-2.3.2-src/lib/python/Zope/__init__.py, line
 221, in zpublisher_exception_hook
 (Object: PLATS_1)
   File 
 /usr/home/magnus/www/Zope-2.3.2-src/lib/python/ZPublisher/Publish.py,
 line 171, in publish
   File 
 /usr/home/magnus/www/Zope-2.3.2-src/lib/python/ZPublisher/mapply.py,
 line 160, in mapply
 (Object: setObjectOwner)
   File 
 /usr/home/magnus/www/Zope-2.3.2-src/lib/python/ZPublisher/Publish.py,
 line 112, in call_object
 (Object: setObjectOwner)
   File
 /usr/home/magnus/www/Zope-2.3.2-src/lib/python/Products/Extern
 alMethod/Exter
 nalMethod.py, line 262, in __call__
 (Object: setObjectOwner)
 (Info: ((FooObject instance at 873bd78, 'david'), {}, None))
   File 
 /usr/home/magnus/www/Zope-2.3.2-src/Extensions/Owner.py, line 2, in
 setObjectOwner
 (Object: PLATS_1)
   File
 /usr/home/magnus/www/Zope-2.3.2-src/lib/python/AccessControl/O
 wned.py, line
 168, in changeOwnership
 (Object: PLATS_1)
   File
 /usr/home/magnus/www/Zope-2.3.2-src/lib/python/AccessControl/O
 wned.py, line
 302, in ownerInfo
 AttributeError: (see above)
 

___
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )