[Zope] Access control & Acquisition...

Art Hampton arth@pacsg.css.mot.com
Thu, 24 Feb 2000 10:00:10 -0600


Jon,

Thanks to your email below, I realized what would solve my own problem.

I'm not sure if this will help you or not, but here goes....

I had a setup like so:

/
+---- acl_users
+---- util
|       +--- (various utilities)
+---- secure
        +--- acl_users
        +--- (various documents)

The top acl_users folder is really only there so that people have to log
in, such that I can show them information customized for them.

The documents in the secure directory use the utilities in util.  But
when acl_users was created in the secure directory, suddenly they
couldn't use the utilities.  This confused me, because everyone had
permission via the top acl_users folder.

Thanks to Jim Fulton's presentation, and your quote from it, I realized
that it didn't matter if they had permissions, the two acl_users folders
just weren't going to play nice.

So I modified the permissions on util such that anyone can view or
access contents information.  Everything is back to working again.

So thanks, and I hope this helped.


Jon Prettyman wrote:
> 
> Given a layout such as this:
> 
> /Control_Panel/Products/UserProperties/UserPropertyClass/
> /nmn/premium/acl_users(GenericUserFolder)/userA(role subscriber)
> /nmn/premium/user_profiles
>             |role subscriber has permission to add UserProperties[s]
>             |role subscriber has permission to View Management Screens
>             |role subscriber has permission to Access contents
> 
> 
> Scenario:
>   anonymous user access /nmn/premium      causes GUF user login
>   logs in as jjp(has role subscriber)     sees /nmn/premium/index_html
>   jjp access /nmn/premium/user_profiles/manage
>                                           sees manage screen with
>                                           [ADD]UserProperties
>   jjp selects [ADD]UserProperties         causes GUF user login screen
>       the log shows that jjp tried to access
> /nmn/Premium/Users/manage_addProduct/UserProperties/UserPropertiesClass_factory
>       and failed with a 500
> Looking at GUF debug messages, it looks like the authentication
> ``crawls'' up and fails at the root.
> 
> After perusing the Acquisition Algebra paper Jim Fulton wrote, I see:
>    Acquisition and Security
> 
>      Based on aq_inner
> 
>      Can't access a protected object unless the user database is a
> common ancestor.
> 
>      Without these rules, it would be possible to "steal" access
> through acquisition.
> 
> Is this second item what is causing me to fail?  If so, any insights
> ino how I can work around it?
> 
> TIA
> -Jon