symfony1.4.9で、個別のクレデンシャルを指定する

ログインコンテンツを作成していて、個別のクレデンシャル単位で表示を切り替えたい場合に利用。

  • 例:
    • クレデンシャル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