symfony1.4.9で、個別のクレデンシャルを指定する
2011年10月13日ログインコンテンツを作成していて、個別のクレデンシャル単位で表示を切り替えたい場合に利用。
- 例:
- クレデンシャルAのユーザでログインした場合、閲覧権限のみ
- クレデンシャルBのユーザでログインした場合、編集権限あり
- クレデンシャルCのユーザでログインした場合、フルコントロール
[php]
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
}
}
[/php]
また、serurity.ymlでクレデンシャルを指定するやり方もある。
[shell]
all:
is_secure: true
credentials: admin
[/shell]