I've also been interested in this..

Here is what I came up with. 

You can query the users permissions from TALES.

Code:
<tal:define="ViewPerms python: here.has_permission('View', here)">



Then check against it later on when listing devices and data.


Code:
<tal:block tal:condition="ViewPerms">
    <!-- ALLOWED CODE HERE-->
</tal:block>

<tal:block tal:condition="not:ViewPerms">
    <!-- DENIED CODE HERE-->
</tal:block>



You can apply this logic to "wrap" various links from the default skins.

You'll find these inside $ZENHOME/Products/ZenModel/skins/zenmodel

For instance I edited leftPane.pt to remove links for users without ZenManager 
permissions. 

You can also go a step further and create a new zProperty containing a list of 
allowed devices. Then edit the skin code to query that property and if the 
device is not in the list, show nothing and place a javascript redirection to 
bounce them out.

I also edited a bunch of other skin files to achieve the same functionality. I 
really doubt if this is the best method since you need to be very careful and 
make sure you close loopholes for a user to get around your artificial 
limitations. It would be tough to be 100% bulletproof but most users arent that 
smart anyway so it works for me.

Perhaps the enterprise version is more complete in this regard but my users are 
none the wiser and they stay in their little sandbox :)

I would package these changes but honestly I really think these are more 
specific to my needs and more of a hack than a really complete feature for 
others. Besides I'd be stepping on Zenoss's toes and I like these people :)




-------------------- m2f --------------------

Read this topic online here:
http://community.zenoss.com/forums/viewtopic.php?p=21013#21013

-------------------- m2f --------------------



_______________________________________________
zenoss-users mailing list
[email protected]
http://lists.zenoss.org/mailman/listinfo/zenoss-users

Reply via email to