0

http://developer.plone.org/reference_manuals/external/plone.app.dexterity/advanced/permissions.html

ドキュメントでは、私はこれを見ます、

注意 すべての権限は、configure.zcml の行の前に定義する必要があります。そうしないと、 grok.require() ディレクティブでパーミッションを使用しようとしてエラーが発生する可能性があります。ファイルは次の permissions.zcmlようになります。

<configure
    xmlns="http://namespaces.zope.org/zope"
    i18n_domain="example.conference">

    <permission
        id="example.conference.AddSession"
        title="example.conference: Add session"
        />

    <permission
        id="example.conference.ModifyTrack"
        title="example.conference: Modify track"
        />

</configure>

新しい権限は、デフォルトでマネージャ ロールにのみ付与されます。別の既定値を設定するには、rolemap.xml の GenericSetup インポート ステップを使用できます。これは、サイト ルートでアクセス許可をロールにマップします。

にはprofiles/default/rolemap.xml、次のものがあります。

<?xml version="1.0"?>
<rolemap>
  <permissions>
    <permission name="example.conference: Add session" acquire="True">
      <role name="Owner"/>
      <role name="Manager"/>
      <role name="Member"/>
      <role name="Contributor"/>
    </permission>
    <permission name="example.conference: Modify track" acquire="True">
      <role name="Manager"/>
      <role name="Reviewer"/>
    </permission>
  </permissions>
</rolemap>

注: このファイルは、短い Zope 3 パーミッション ID の代わりに、Zope 2 パーミッション タイトルを使用します。

Plone の Dexterity はデータベースを使用するようにプログラムできますか? 何千人ものユーザーがいる場合はどうなりますか? 既に Active Directory または MySQL データベースにある場合、それは多くの xml ファイルについていく必要があります。セキュリティに基づいて、ボタンやその他の Web ページ アイテムが表示されないようにしたい。器用さはそれを行うように見えます。

ありがとう。

編集: ユーザーは LDAP サーバーのようなリポジトリに保持されているため、ユーザーとロールの間の混乱を解消していただきありがとうございます。

役割とユーザーを設定したら、このように html をラップするだけで済みます (以下のように Python コードを定義した後)。

「例として、ユーザーが cmf.RequestReview パーミッションを持っている場合に、Session タイプのビューにメッセージを表示してみましょう。session.py では、View クラスを次のように更新します (同じページ)。

from zope.security import checkPermission

class View(dexterity.DisplayForm):
    grok.context(ISession)
    grok.require('zope2.View')

    def canRequestReview(self):
        return checkPermission('cmf.RequestReview', self.context)

そして、session_templates/view.pt テンプレートに、次を追加します。

<div class="discreet"
     tal:condition="view/canRequestReview"
     i18n:translate="suggest_review">
    Please submit this for review.
</div>

"

4

0 に答える 0