static function createByTokenAndUser($token, sfUser $user)
 {
     $rpx = new RPX();
     $response = $rpx->call('auth_info', array('token' => $token));
     if ($response->stat == 'ok') {
         //Save if not found already
         if (!Doctrine::getTable('sfAuthIdentity')->findOneByUrl($response->profile->identifier)) {
             //Assign
             $identity = new sfAuthIdentity();
             $identity->sf_auth_user_id = $user->getId();
             $identity->url = $response->profile->identifier;
             $identity->provider = $response->profile->providerName;
             //Save
             return $identity->save();
         }
         return 'Identity already exists';
     }
     return 'Could not retrieve user profile from partner';
 }
 public function executeDelete(sfWebRequest $request)
 {
     //Have id params
     $this->forward404Unless($request->hasParameter('id'));
     //Try to delete
     $ok = sfAuthIdentity::deleteByIdAndUser($request->getParameter('id'), $this->getUser());
     //404 if failed
     $this->forward404Unless($ok);
     //flash and redirect
     $this->getUser()->setFlash('success', $this->getContext()->getI18N()->__('The identity was deleted'));
     $this->redirect('sfAuthIdentity/index');
 }