2012-10-30 18 views
5

他のグループには表示されないグループ管理フォルダをいくつかセットアップしようとしています。現在のところ、@ @共有タブの "上位レベルからのアクセス許可を継承する"チェックボックスをオフにすることで実現しますが、私はこれを自動化したいと思います。「上位レベルからのアクセス許可を継承する」プログラムで

ドキュメントやグーグルでこれについて何も見つかりませんでした。 eggsディレクトリの周りを検索した後、私は 'ac_inherited_permissions'についていくつか興味深いものを見つけましたが、私の解決策として私は何も飛び出さなかった。

私はobj.inherited_permissions = Falseのようなことをしたい、あるいは必要な機能を呼びたいと思います。

アイデア?

答えて

5

共有タブはローカルロールにのみ影響します。これらは通常親から継承されますが、オブジェクト上で__ac_local_roles_block__Trueに設定することで明示的にブロックすることができます。

ていることを確認しますが、しかし、あなたは開封されたオブジェクト(無取得コンテキスト)でこれを設定します。

from Acquisition import aq_base 

aq_base(object).__ac_local_roles_block__ = True 
+0

を、私はそれがそのようなものになるだろうと思いました。ありがとうございました! – waldopat

+0

Martijn、aq_baseの使用に関する警告を詳しく教えてください。 – cewing

+0

@cewing:この場合、実際には冗長です。アトリビュートを設定すると、現在のオブジェクトでは常にそのようになります(アトリビュートを見つけてそこに設定するためにチェーンを辿ることはありません)。しかし明示的な方が暗黙的であるよりも優れています。*属性が設定されているかどうかチェックする*場合は、(この特定の属性に対して) 'aq_base'を見てください。したがって明示的なアンラッピング。 –

関連する問題