問題タブ [sfguard]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
symfony-1.4 - sfGuardGroupをカスタマイズできません-キャッシュされたバージョンautosfGuardGroupが常に使用されます
私はSymfony1.4.11のPropelでsfGuardPluginを使用しています。sfGuardUser、sfGuardGroup、sfGuardPermissionのいくつかのテンプレートをオーバーライドしています。私のローカルホストバージョンではこれは機能しますが、共有ホスティングではsfGuardGroupモジュールとsfGuardPermissionモジュールが私のアプリのテンプレートを頑固に無視し、代わりにキャッシュされたautoXXXモジュールに戻ります。不思議なことに、sfGuardUserはこの点で両方のプラットフォームで機能します。
デバッグログは、手順が実行されるまで同じです。
「sfGuardGroupActions->executeIndex()」を呼び出します
ローカルバージョンは正しく続行されます
「sf_app_dir/modules / sfGuardGroup / templates/indexSuccess.php」をレンダリングします
リモートサーバーが次のように動作している間:
「sf_root_dir/cache / backend / dev / modules / autoSfGuardGroup / templates/indexSuccess.php」をレンダリングします
私はこれまでモジュールの動作に違いが見られたことがなく、これは本当に私を困惑させます。ProjectConfiguration.class.phpとdatabase.ymlを除いて、両方の場所のファイルは同一です。この種の問題についての言及は見つかりませんでした。何がこれを引き起こしているのか分かりますか?
編集:
もちろん、両端のキャッシュをクリアしました。
symfony-1.4 - 複雑な AND/OR クレデンシャルを持つ sfGuardPlugin
security.yml でアクションを保護しています。ユーザーが資格情報 (A と B) または (A と C) を持っている場合にアクセスできるようにします。かなりまばらなドキュメントを見て、これらの組み合わせを試しました:
それらのどれも機能しません。[A, B]
動作しますが、それは戦いの半分に過ぎません。誰かがこのようなものを持っていますか?
Propel 1.4.2 と sfActionCredentialsGetterPlugin を使用しています。ご意見ありがとうございます。
編集:
私は sfActionCredentialsGetterPlugin を使わずにテストを行いました。
私はどこにも行きません。
ここにもう少し情報があります: http://www.symfony-project.org/gentle-introduction/1_4/en/06-Inside-the-Controller-Layer#chapter_06_sub_complex_credentials
それによると、上記の3回目の試行[A, [B, C]]
はうまくいくはずです!
誰?
編集2:
ドキュメントからコピーした単純な OR の組み合わせを試しました。
繰り返しますが、サイコロはありません。バグレポートを投稿しました: http://trac.symfony-project.org/ticket/10036
ここに回答として一時的な回避策を投稿します。みんなありがとう。
symfony1 - 既存のデータを消去せずに、更新されたフィクスチャ ファイルからデータをロードする
sfGuard プラグインを 3 つのユーザー グループと権限セットでインストールしました。これは、プラグインが最初にインストールされたときに行われたもので、データベースには多くのデータがありませんでした。新しい権限を持つ新しいユーザー グループを追加したいと考えています。
フィクスチャ ディレクトリにある sfGuard.yml ファイルを編集しました。現在のデータを消去せずに、新しい yml データを SQL データベースにアップロードするにはどうすればよいですか?
sfGuard.yml スニペットは次のとおりです。
どの方向も素晴らしいでしょう!
symfony1 - sfGuardユーザー管理フォームへの新しいユーザーフィールドの追加
sfGuardプラグインのユーザーフォームにカスタムフィールドを追加しようとしています。
データベースに列を作成し、フィールドのウィジェットスキーマを追加しました。フォームに正しく表示され、テキストを追加して送信すると、更新が成功したことが示されます。ただし、フィールドに挿入されたデータはデータベースに入力されません。
新しいフィールドを認識していないため、sfGuardのモデルを更新する必要があると考えています。試し$ ./symfony doctrine:build-model
ましたが、sfGuardプラグインのクラスが更新されていないようです。
これをsfGuardUserAdminClassに追加しました:
フォームフィールドを表示して送信できますが、データをキャッチしてデータベースに挿入しているだけではありません。
アップデート
MyUserオブジェクトを使用してスキーマを更新し、diffを移行して、モデルを構築しました。$this->embedRelation('Profile');
sfGuardUserAdminForm.classに追加しました。このエラーが発生します
php - SymfonysfDoctrineGuardパスワード暗号化
ユーザー向けにsfDoctrineGuardPluginを使用したSymfony1.4アプリがあります。
これらのユーザーを新しいシステムに移動する必要があります。ドキュメントとコードを読んだ後、Symfonyがパスワードを保存/チェックする方法を理解するのに苦労しています。
新しいシステム(CakePHP)に、古いシステムと同じようにパスワードを保存して確認してもらいたいので、誰もパスワードを変更する必要はありません。
どうすればいいですか?誰かが簡単な例を投稿できますか?
php - symfony での security.yml の問題
sfGuardPlugin 5.0.0 を使用して Symfony 1.4 で開発されたアプリケーションでセキュリティを設定しようとしています。
要件では、管理者ユーザーはすべての操作を実行でき、閲覧者はレコードの一覧表示と表示のみを行うことができます。
これは、モジュールのディレクトリ構成で使用している security.yml です。
しかし、ビューアに許可されたアクションの 1 つを作成しようとすると、理由がわかりません。「許可されていません」というメッセージで停止します。
スタック トレースは次のとおりです。
どんな手掛かり?
symfony1 - embedRelation() からテーブル ヘッダーを削除する
sfGuard ユーザー フォームに別のフォームをプルするために、embedRelation() を使用しました。現在のフォームに収まるようにスタイルを設定しようとしています。
これにより、フォームが引き込まれます。
しかし、削除したいいくつかの余分なhtml要素を追加しています:
「プロファイル」を削除するにはどうすればよいですか? また、ラベルがテーブル ヘッダーにラップされないようにしたいと考えています。これはembedRelationを使用して可能ですか?
更新されたスキーマ フォーマッタ:
sfWidgetFormSchemaFormatter は、埋め込みフォームからテーブル要素を削除するように機能します。「プロファイル」を取り除く方法がまだわかりません。sfWidgetFormSchemaFormatter を追加しました
sfWidgetFormSchemaFormatterAc2009.class.php
html:
更新 2:
新しい関数 generateLabel($name, $attributes = array()) は、フォームの上部にこれを生成しています:
string(16) "部門名"
プロフィールが残っています。
解決済み
JQueryを使用してこれを達成できました
これを editSuccess.php テンプレートに追加しました:
plugins - Symfony getUser とフォームへの保存
ユーザーが編集できない隠しフィールドがいくつかある symfony フォームがありますが、フォームを送信すると自動的に設定されます。設定できないように見える 1 つのフィールドは、userID です。フォームは保護されているため、表示するには認証が必要です (sfDoctrineGuardPlugin)。
私が探しているのは、「user_id」フィールドを現在ログインしているユーザー名に設定するフォームです。クラスファイルでこれを試しました。
ただし、現在のテーブルにユーザー フィールドがないことを示すエラーが常に返されます。私はそれを正しく説明したことを願っています。
php - symfony1.4の拡張クラスへのアクセス
だから...私は基本的に実用的なsymfonyの本に従い、次の問題に遭遇しました。私は(おそらく)sfGuardPluginを適切にインストールし、モデル、sqlsなどを構築し、ユーザーを作成し、入力されたユーザー名とパスワードでログインしようとしました。
次のエラーメッセージが表示されました。
Fatal error: Call to undefined method sfGuardUserPeer::retrieveByUsername() in /***/plugins/sfGuardPlugin/lib/validator/sfGuardValidatorUser.class.php on line 53
sfGuardValidatorUserクラスの問題のある部分は次のようになっているため、私には非常に奇妙に見えます。
sfGuardUserPeerには空のクラスがあります。
これはPluginsfGuardUserPeerを拡張するので、私もチェックアウトしました。
それは欠けている機能です!
だから-何が問題なのですか?なぜそれが機能しないのですか?私はすでにグーグルで見つけたすべての解決策を試しましたが、どれもうまくいきません:/
symfony1 - sfGuardAuth認証が必要なため、FacebookはSymfonyアプリと通信できません
私はSymfony1.4とDoctrine1.2で音楽ウェブサイトを構築しています。Facebookプラグイン(メッセージボタンの送信、投稿など)を自分のページに統合しようとしています。たとえば、ユーザーが自分の曲モジュールの曲ページで曲を高く評価できるようにしたいと考えています。しかし、問題は、ランディングページを除くアプリのすべてのモジュールを保護するためにsfDoctrineGuardを使用したことです。したがって、ユーザーがログインしてFacebookの「いいね」ボタンを使用して曲のページで曲を高く評価すると、その曲のモジュールはsfGuardAuthによって保護されているため、Facebook APIはその曲と通信できず、ランディングページに転送されます。これは、ユーザーが私のランディングページを気に入ったかのように、私のアプリのすべてのいいねがFacebookアクティビティフィードに投稿されることを意味します。
FacebookドメインからのトラフィックがそのページにアクセスできるようにsfGuardに例外を組み込む方法はありますか?これに対する回避策はありますか?保護されたページのすべてのFacebookメタデータを、好きな曲をFacebookのウォールに表示できるようにしたいと思います。すべてのsfGuardセキュリティを無効にすると、正常に機能します。
私は困惑していて、この問題を抱えている人を他に見つけていないので、どんな助けでも素晴らしいでしょう。