ケーキPHP:データフィールドを管理者のみが編集できるようにする
-
27-09-2019 - |
質問
私のデータ モデルには、管理者のみが編集できるフィールドがあります。通常のユーザーはモデル内のレコードを編集してこの特定のフィールドを表示できますが、編集することはできません。これを行うためのシンプルでクリーンなアプローチはありますか?追加の admin_edit コントローラー アクションを作成する必要があると思いますが、コントローラーのデータ フィールドを「ロック」する最善の方法は何ですか?
解決
新しいコントローラー アクションを作成する必要はありませんが、そうすることもできます。次を使用すると、同じビューを引き続き使用できることに注意してください。 $this->render("edit")
見る: http://book.cakephp.org/view/428/render
次のことをすべきだと思います:
- ユーザーと管理者が混乱しない場合は、同じコントローラー アクションを使用します。
- ユーザーが管理者の場合にのみ入力フィールドを表示し、他のユーザーにはテキストを出力します
- コントローラでの認可を確認します
他のヒント
設定によっては、これは簡単にモデルでの検証方法として扱うことができます。ユーザーが権限を持っているかどうかを確認するためにモデルにカスタム関数を記述します。
またbeforeSave()とモデルでそれを行うことができます。フィールドが存在し、彼らが権限を持っていない場合、それを削除します。
あなたはsimly編集ビューで管理者の役割を確認することができます。
if (hasRoleAdmin) {
echo $this->Form->input(...);
}
所属していません StackOverflow