4

Plone サイトのルートのビューをログインしたメンバーのみに制限したいと思います。

どの権限を確認する必要がありますか?

明確にするために、このパーミッションを Zope 3 ビュー構成として使用し、デフォルトで動作するものを用意したいと思います。このような状況を回避できるのであれば、Authenticated 自身にアクセス許可を作成して割り当てたくありません。

4

2 に答える 2

9

「認証済み」パーミッションはありません。すべてのパーミッションは特定のアクション専用であり、認証されたユーザーがそのアクションを実行できる必要がある場合は、対応するパーミッションを「認証済み」ロールに割り当てる必要があります。

'Authenticated' ロールの (Zope2 文字列ベースの) アクセス許可のクイック リストを取得するには、次の ZMI ビューを使用します。

http://localhost:8080/Plone/manage_roleForm?role_to_manage=Authenticated

ここで、ポート 8080 でサイトを実行し、Plone オブジェクトに名前を付けたとしますPlone。現在割り当てられている権限がアクティブ化された状態で、複数選択リストにすべての権限が表示されます。

デフォルトのサイトでは、このリストはかなり貧弱で、 のみSet own passwordSet own properties割り当てUse external editorられています。最初の 2 つは、Zope3 の同等物がProducts.CMFCore で定義されています。彼らはcmf.SetOwnPassword、そしてcmf.SetOwnProperties; 3 つ目は、現時点では Zope3 に相当するものはありませんが、簡単に定義できます。これを ZCML ファイルのどこかに追加するだけです。

<permission
  id="plone.UseExternalEditor"
  title="Use external editor"
  />

Zope3 のパーミッションは、有効な Python ID を使用した Zope2 のパーミッションの単純なエイリアスです。

ビューで何をしたいのか本当にわかりませんが、適切な権限を見つけて「認証済み」ロールに割り当てるか、新しい権限を作成するのが最善の策です。

後者は実際には非常に簡単です。

「Access foo bar」パーミッションを作成したいとします。ZCML ファイルの Zope3 識別子に直接登録するだけです。

<permission
    id="foobar.AccessFooBar"
    title="Access foo bar"
    />

それだけです。「Access foo bar」権限が ZMI に表示されるようになります。

デフォルトで特定の役割にこの権限を付与する場合は、含まれる要素としてそれらをリストします。

<permission
    id="foobar.AccessFooBar"
    title="Access foo bar">
  <role name="Authenticated" />
</permission>

これは、'Manager'、'Anonymous'、'Authenticated' などの 'global' ロール (Zope ルートで定義) に対してのみ機能します。

必要に応じて、rolemap.xml ファイルを使用して GenericSetup プロファイルにリストし、この新しい権限を Authenticated ロールに割り当てます。

<?xml version="1.0"?>
<rolemap>
  <permissions>
    <permission name="Access foo bar" acquire="False">
      <role name="Authenticated"/>
    </permission>
  </permissions>
</rolemap>

「サイト管理者」や「編集者」など、Plone レベルで定義された権限を割り当てたい場合にのみ、後者を使用する必要があります。

于 2012-06-05T14:26:07.407 に答える
4

ストック Plone では、認証されたが匿名ではないユーザーが自分のパスワードを変更できます。その権限を使用できます。いわゆる:

cmf.SetOwnPassword

于 2012-06-05T14:03:09.203 に答える