symfony1.4.9で、個別のクレデンシャルを指定する
2011年10月13日ログインコンテンツを作成していて、個別のクレデンシャル単位で表示を切り替えたい場合に利用。
- 例:
- クレデンシャルAのユーザでログインした場合、閲覧権限のみ
- クレデンシャルBのユーザでログインした場合、編集権限あり
- クレデンシャルCのユーザでログインした場合、フルコントロール
上記のような権限別のコントロールで利用する。
サンプル
class myAccountActions extends sfActions { public function executeDoThingsWithCredentials() { $user = $this->getUser(); // 1つもしくは複数のクレデンシャルを追加する $user->addCredential('foo'); $user->addCredentials('foo', 'bar'); // ユーザーがクレデンシャルを持つかどうかを確認する echo $user->hasCredential('foo'); => true // ユーザーが1つのクレデンシャルを持つのか確認する echo $user->hasCredential(array('foo', 'bar')); => true // ユーザーが両方のクレデンシャルを持つのか確認する echo $user->hasCredential(array('foo', 'bar'), false); => true // 1つのクレデンシャルを削除する $user->removeCredential('foo'); echo $user->hasCredential('foo'); => false // すべてのクレデンシャルをクリアする(ログアウト処理で便利) $user->clearCredentials(); echo $user->hasCredential('bar'); => false } }
また、serurity.ymlでクレデンシャルを指定するやり方もある。
all: is_secure: true credentials: admin