[ZPatterns] Can't set proxy roles for SkinScript

Rob Miller [email protected]
Tue, 7 Jan 2003 19:48:48 -0800


On Tuesday, January 7, 2003, at 05:37 PM, Itai Tavor wrote:

> Hi,
>
> In Zope 2.5.1 with ZPatterns 0.4.3p2 (TransactionAgents 5), trying to 
> set the Manager proxy role on a SkinScript results in:
>
>    You are not authorized to change ... because you do not have proxy 
> roles.
>
> I thought we left this kind of nonsense behind a long time ago. What's 
> happening?

this is just zope enforcing its security model, no nonsense about it.  
a user is not allowed to assign a proxy role to an object unless the 
user has that role himself.  this catches people off guard when they're 
logged in as a Manager, and then they try to specify a proxy role of, 
say, Member, to some page template or python script (or skinscript ;-). 
  zope will deny this action until the Manager user explicitly adds the 
Member role to his user object.

> Also, in a SkinScript that catalogs changed objects, I tried to avoid 
> the need for the proxy role by giving my user role the "Manage 
> ZCatalog Entries" permission, which is the one protecting 
> uncatalog_object in ZCatalog, but I still get an access error on 
> uncatalog_object in:
>
> WHEN OBJECT CHANGED CALL
>   Catalog.uncatalog_object(_.string.join(self.getPhysicalPath(),'/')),
>   Catalog.catalog_object(self, 
> _.string.join(self.getPhysicalPath(),'/'))
>
> Can anyone think of a reason why the permission settings are being 
> ignored?

this one i can't answer.  i'm as curious as you are, actually... i've 
always resorted to proxy roles, myself, as you tried to do.

-r