/** * If a <code>Facebook</code> session if open signout from Facebook * then redirect to <code>sfGuardAuthActions</code> signout. * Else forward to <code>sfGuardAuthActions</code> signout. * * @param sfWebRequest $request */ public function executeSignout($request) { $facebook = kdDoctrineGuardFacebookConnect::getFacebook(); $url = $this->getContext()->getRouting()->generate('sf_guard_signout', array(), true); if ($facebook->getSession()) { $url = $facebook->getLogoutUrl(array ( 'next' => $url )); $this->redirect($url); } $this->forward('sfGuardAuth', 'signout'); }
/** * Executes the filter and chains. * * @param sfFilterChain $filterChain */ public function execute($filterChain) { if ($this->isFirstCall() && $this->context->getUser()->isAnonymous()) { $facebook = kdDoctrineGuardFacebookConnect::getFacebook(); $uid = $facebook->getUser(); try { $me = $facebook->api('/me'); if ($me) { $sfGuardUser = kdDoctrineGuardFacebookConnect::updateOrCreateUser($me); $this->context->getUser()->signIn($sfGuardUser); } } catch (FacebookApiException $ex) { $this->getContext()->getLogger()->err($ex); } } $filterChain->execute(); }
/** * Displays the connection form with a Facebook connect button */ public function executeSignin_form() { $this->facebook = kdDoctrineGuardFacebookConnect::getFacebook(); parent::executeSignin_form(); }