2017-03-05 20 views
0

私は基本的なアイデアのガイドラインを知りたいと思います。管理者と管理者の両方でSonataAdminBundleを転用する方法

私は現時点でSonataAdminBundleによってエンティティを管理しています。 進歩を進めていきたいと思います。

私はこのようなテーブル/エンティティを持っている

[例えば] sonataadminbundle

により管理者とユーザーの両方の編集に実体を作りたいです。

Id |User | data 
1 |bear | sarmon 
2 |dog | meat 
3 |monkey| banana 
4 |bear | peanuts 
5 |dog | corn 

もちろん、I(admin)はSonataAdminBundleのadmin_dashboardからエンティティを編集できます。

しかし、私はユーザーに「1つ」と「4つの行だけを編集する」ようにしたいと思います。

コントローラのスクラッチからedit/update/listスクリプトを作成するとします。 これは簡単です。

しかし、SonataAdminBundleは私が最初から作るよりも優れたUIを持っているため、無駄な作業だと思います。

だから誰もこの種のアイデアに適した方法を知っていますか? または、ユーザーと管理者の両方にSonataAdminBundleを使用することは悪い考えですか?


私はユーザーには、関連するテーブルだけのようなクマを見てみましょう。

Id |User | data 
1 |bear | sarmon 
4 |bear | peanuts 

最初に私は、しかし、このコードは一度だけ呼ばれる public function configureListFields(ListMapper $listMapper) に苦しんでいます。 私は正解を見つけることができません。

だから私はこの種のコードを別の場所に置く必要があると思います。

if ($user == bear){ 
array_push($table,$line); 
} 
else { 
} 

答えて

1

ユーザーと特権ユーザーに同時にAdminBundleを使用することは完全にうまくいきます。

protected function configureFormFields(FormMapper $mapper) 
{ 
    /* either identify your custom rows here or via ACL/ROLES */ 
    if (!$this->isGranted('EDIT')) { 
     // not allowed 
    } 
} 
セキュリティ上の懸念のために

(と自分の用途に応じてユーザの現在のログに記録されたが付与されている場合 あなたは簡単に1または

4.たとえば、あなたが使用することができ、行を編集するには、管理を依頼することができます(上記の例はフォーム/編集マスクをオーバーライドするだけなので)非特権ユーザーにこれらのエンティティを表示/リストすることはできません。もちろん、これらのメソッドにロジックを追加することもできます。

セキュリティハンドラに応じて、symfony(Roles、ACL、...)でサポートされているすべてのものを使用できます。 ここにあなたのニーズに合わせて設定する方法を見てください:https://sonata-project.org/bundles/admin/3-x/doc/reference/security.html

+0

私は基本的な考えを与えてくれてありがとうと保証します。私はステップバイステップで実装します! – whitebear

+0

あなたは大歓迎です:-) –

+0

私はその文書を読んでいます。しかし、私がやりたかったのはちょっとです。私は記事を追加しました。可能であれば助けてもらえますか? – whitebear

関連する問題