5

Sonata Admin に ACL を設定しました。正常に機能するさまざまなユーザー、グループ、および権限があります。これを達成するために、ACL に関する Sonata Admin のドキュメントに従いました。

ここに私の質問があります: バックエンド (管理者) ユーザーが、Symfony および Sonata Admin の組み込み ACL メカニズムで作成したエンティティのみを表示、編集、および削除できるようにするクリーンな方法は何ですか? Sonata Admin は、オブジェクトが ACL テーブルに永続化されると、オブジェクトの所有者 (作成者) を自動的に保存します ( Sonata docsから)。

Owner : オブジェクトが作成されると、現在ログインしているユーザーがそのオブジェクトの所有者として設定され、そのオブジェクトに対するすべてのアクセスが許可されます。

同じ質問が Stackoverflow で既に回答されていますが、その回答では ACL を使用して解決する方法について詳しく説明されていません。

4

3 に答える 3

4

それを行う新しい Symfony バンドルがあります: https://github.com/coopTilleuls/CoopTilleulsAclSonataAdminExtensionBundle

Sonata Admin で ACL を有効にし、バンドルをインストールして有効化するだけです。非常に簡単で効果的です。Symfony2 プロジェクトで Sonata Admin 2.2 を使用して使用しています。

于 2015-01-23T14:09:31.960 に答える
2

EDITユーザーに権限を付与しないでください。自分が所有するインスタンスは編集できますが、他のインスタンスは編集できません。

私はこの構成を使用します:

#app/config/config.yml
sonata_admin:
    security:
        information:
            STAFF:    [VIEW, LIST, CREATE]
            EDITOR:   [OPERATOR, EXPORT]
            ADMIN:    [MASTER]

ドキュメンテーション

于 2014-01-02T15:04:56.367 に答える