sfDoctrineGuard モジュールを使用して、symfony プロジェクトのパーミッションを管理しています。
次の動作に気付きました: 1 人のユーザーとしてログインしているときに、資格情報を持っていないものにアクセスしようとすると、多くのことが通知され、ログイン画面が表示されます。その後、別のユーザーとしてログインしようとすると、ログインできなくなります。同じ権限拒否エラーが引き続き発生します。別のユーザーとして再度ログインする前に、セッションでユーザー資格情報を削除するには、明示的にログアウトする (またはブラウザーを閉じる) 必要があるようです。
これは意図した動作ですか? または、何かを間違って設定しましたか?
更新します。Darmen はいくつかのコードを要求しました。私は多くのコードを書きませんでしたが、主にいくつかの構成を行いました。それが役立つ場合、ここに私がやったことがあります
- プラグインのドキュメントに従って sfDoctrineGuard モジュールをインストールしました。
編集してモジュールを有効にしました
config/ProjectConfiguration.class.php
:class ProjectConfiguration extends sfProjectConfiguration { public function setup() { $this->enablePlugins('sfDoctrinePlugin'); // Add this $this->enablePlugins('sfDoctrineGuardPlugin'); // Add this } }
モデルを再構築しました。
backend
編集してアプリケーションを保護しましたapps/backend/config/security.yml
:default: is_secure: true
いくつかのユーザー、グループ、および権限を作成しました。
perm_backend_edit
これを追加することにより、モジュールの1つをアクセス許可に関連付けられたユーザーまたはグループに制限しましたapps/backend/modules/book/config/security.yml
default: is_secure: true credentials: [ perm_backend_edit ]