ユーザーがフォームフィールドを変更する権限を持っているかどうかをチェックする、zendフォームのバリデータを記述することは可能ですか?ユーザーにはフィールドが表示されますが、権限がなくても(acl権限なしでも)試行すると、エラーメッセージが表示されますか?これは、ユーザがフィールドを変更することを許可されていない場合、フィールドが非アクティブ化されることを意味します。ZF Zend Formユーザーがフィールドを変更できるかどうかを確認するフォーム検証ツールですか?
答えて
Zend_Acl
を使用してアクセス許可をチェックする予定です。
/** Application_Validate_HasEditRights::isValid()**/
public function isValid($value, $context = array())
{
// Set in form or element using $this->setResource()
$resource = $this->_resource;
// Set in form or element using $this->setPrivilege()
$privilege = $this->_privilege;
if (empty($resource) || empty($privilege)) {
throw new Zend_Exception("Validator requires a resource and privilege");
}
// Set in form or element $this->setOriginalValue()
$original = $this->_originalValue;
$isEdit = false;
// Check if original matches new value
if ($original != $value) {
$isEdit = true;
}
/** Get ACL **/
$acl = new Zend_Acl();
$acl->addRole('guest');
$acl->addRole('administrator', 'guest');
$acl->addResource('form');
// $acl->allow('role', 'resource', array('privilege'));
$acl->allow('guest','form', array('limited')); // arbitrary resource and privilege names
$acl->allow('administrator','form', array('full-access'));
// Get the role of the logged in user; this may be different from how you store it
$role = Zend_Auth::getInstance()->getIdentity()->role;
// Check if the role has access to this form
if ($isEdit && !$acl->isAllowed($role, $resource, $privilege)) {
// Set Error message
$this->_error(self::INVALID_PRIVILEGES);
return false;
}
return true;
}
Thx bradyでも、それでも私の問題は解決しません。 – Manuel
あなたはフォームから要素を完全に削除しています。これは基本的には良いアイデアですが、私の目標ではありません。ユーザーはフィールドの内容を確認する必要があり、変更しようとすると応答が必要なので、Elementを検証する必要があります。私はアプリケーションを一般的なものにしたいと思っています。設定ファイル(application.ini)またはデータベースに(フォーム)とその権利を格納することは可能ですか?どのようにフォームをデータベースに戻しても安全ですか?フォームからAJAXレスポンスを作成できますか? – Manuel
バリデーターでコードを表示するように私の答えを更新しました。このコンセプトは、異なるコンテキストで使用する場合と同じです。必要に応じて、フォーム、リソース、特権、およびACL全体をデータベースまたはiniファイルに格納することができます。フォームの保存とAJAXでの使用。 [Zend_Form](http://framework.zend.com/manual/en/zend.form.html)のマニュアルをお読みになることをお勧めします。 –
- 1. Zend Form:依存フィールド検証
- 2. ".txt"ファイルであるかどうかを確認する検証
- 3. ZF 2フォーム検証翻訳
- 4. jQueryの検証:フォームが検証されているかどうかを確認しますか?
- 5. 変数がnullかどうかを確認します - 不正確な検証
- 6. フィールドがシステムフィールドであるかどうかを確認する
- 7. ユーザーがパーソナライズ可能なプロパティを変更できるかどうかを確認する方法
- 8. Zend Frameworkユーザー認証
- 9. 認証された紹介 - ユーザーが認証されたばかりかどうかを確認する方法
- 10. ユーザーが建物内にいるかどうかを確認できますか?
- 11. ファイルが変更されたかどうかを確認する
- 12. フォーム認証 - 非アクティブユーザーのユーザー名とパスワードを確認するにはどうすればいいですか?
- 13. ユーザーが外部リソースにアクセスできるかどうかを確認するドメイン
- 14. Xpages:ユーザーがデータベースにアクセスできるかどうかを確認する
- 15. prePersist()で値が変更されたかどうか確認できますか?
- 16. ZFユーザーがリソースに許可されているかどうかを確認します。
- 17. redux-formにエラーが存在するかどうかを確認する方法
- 18. ユーザーがdbで確認されているかどうかを確認
- 19. ユーザーが管理者であるかどうかを確認
- 20. テキストフィールドが変更されたときにユーザーがFirebaseに存在するかどうかを確認します
- 21. フィールドが検索可能かどうかを確認するには
- 22. フィールドをフォームで検証する - "product"がCakePhpに存在するかどうかをチェックする3
- 23. サイトでフォーム認証が使用されているかどうかを確認する方法
- 24. フィールドに検証が渡されているかどうかを確認する方法は?
- 25. 認証されたユーザーがURLにアクセスできるかどうかを確認してください
- 26. ユーザーが下部にいるかどうかを確認する
- 27. ユーザーがフォレスト内にいるかどうかを確認する
- 28. .Net Core 2.0のRazorページでユーザーが認証されているかどうかを確認する方法
- 29. IBM MobileFirst SDKユーザー認証がAndroidネイティブアプリであるかどうかを確認する方法
- 30. ユーザーがピラミッドで認証されているかどうかを確認するためのビーカーセッションの使用
はい可能です。これが起こることに問題がありますか?コードはありますか?何を試しましたか? –
私は以前はZFを使用していませんでしたが、基本的にはゼロから始まっています。私はチュートリアルから作業するフォームを得ることができると思いますが、バリデーターの権利をチェックするサンプルがありますか? – Manuel