ユーザに対するクレデンシャルの付与

 myUser.class.phpを改造して、ログイン時にクレデンシャルを追加してみます。今、作成しているアプリケーションでは、ユーザ管理にはsfGuardPluginを使っているので、myUser.class.phpの中味は次のようになっています。

<?php

class myUser extends sfGuardSecurityUser
{
}

ログイン時にクレデンシャルを追加するには、次のようにsfGuardSecurityUser::signInをオーバライドします。ちょっと変更すれば、独自のグループやロール、パーミッションの管理を実装できそうです。

<?php

class myUser extends sfGuardSecurityUser
{
  public function signIn($user, $remember = false, $con = null)
  {
    parent::signIn($user, $remember, $con);
    $this->addCredentials(
           array('追加のクレデンシャル1', 
                 '追加のクレデンシャル2'));
  }
}