[ZPatterns] Can't set proxy roles for SkinScript
Itai Tavor
[email protected]
Wed, 8 Jan 2003 16:53:29 +1100
Hi Steve,
Beautimous! Excellent work, Steve. It solves the problem. Well, the
first one, at least. I can assign proxy roles now. I'd still like to
know why giving the user the Change Catalog permission doesn't help...
BTW, I'm not using LoginManager in this application, I got bitten by it
too many times - so this problem is not LM related.
On Wednesday, January 8, 2003, at 04:19 PM, Steve Spicklemire wrote:
> Hi Itai,
>
> Can you see if this helps?
>
> [vh10-48:~/client2/Products/ZPatterns] steve% cvs diff Proxy.py
> Index: Proxy.py
> ===================================================================
> RCS file: /cvsroot/zpatterns/ZPatterns/Proxy.py,v
> retrieving revision 1.1.1.1
> diff -r1.1.1.1 Proxy.py
> 26c26
> < user=user.hasRole
> ---
> > user=user.has_role
> 28c28
> < if r and not user(self, (r,)):
> ---
> > if r and not user((r,), self):
>
>
> -steve
>
> On Tuesday, January 7, 2003, at 11:57 PM, Steve Spicklemire wrote:
>
>>
>> This sounds a bit like problems I'm seen in LoginManager where
>> various bits of skinscript get executing at different points in the
>> transaction, where permissions are changing along the way. I'll try
>> to reproduce this.. and poke a bit.
>>
>> -steve
>>
>> On Tuesday, January 7, 2003, at 11:38 PM, Itai Tavor wrote:
>>
>>> On Wednesday, January 8, 2003, at 02:48 PM, Rob Miller wrote:
>>>
>>>> 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.
>>>
>>> Thanks, Rob, but... I got the Manager role, and I'm trying to give
>>> the SkinScript the Manager proxy role. It should work. It works when
>>> I give the Manager proxy role to other Zope objects, but not to a
>>> SkinScript. Something is wrong with SkinScripts...
>>>
>>>
>>>>> 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.
>>>
>>> This is really strange. I haven't done a lot of digging, but
>>> something strange is definitely going on. The test user I'm using
>>> has a role called "Scheduler" which has permissions to change
>>> application objects as well as modify the Catalog. The fact that the
>>> Unauthorized happens on the uncatalog_object call means that the
>>> attempt to modify the object worked - so the role is applied
>>> correctly, but the SkinScript gets executed without the permissions
>>> of this role.
>>>
>>> Disgusting. Annoying. Painful.
>>>
>>> _______________________________________________
>>> ZPatterns mailing list
>>> [email protected]
>>> http://www.eby-sarna.com/mailman/listinfo/zpatterns
>
>