Development

/plugins/sfFacebookConnectPlugin/trunk/modules/sfFacebookConnectAuth/lib/BasesfFacebookConnectAuthActions.class.php

You must first sign up to be able to contribute.

root/plugins/sfFacebookConnectPlugin/trunk/modules/sfFacebookConnectAuth/lib/BasesfFacebookConnectAuthActions.class.php

Revision 22362, 2.9 kB (checked in by fabriceb, 4 years ago)

[sfFacebookConnectPlugin] New light medium long button

Line 
1 <?php
2
3
4 class BasesfFacebookConnectAuthActions extends sfActions
5 {
6
7    /**
8    * Sign in with the Facebook account, ajax
9    * @author fabriceb
10    * @since 2009-05-17
11    *
12    */
13   public function executeAjaxSignin()
14   {
15     $this->setLayout(false);
16     $sfGuardUser = sfFacebook::getSfGuardUserByFacebookSession();
17     if ($sfGuardUser)
18     {
19       $this->getContext()->getUser()->signIn($sfGuardUser);
20       $this->getResponse()->setHeaderOnly(true);
21
22       return sfView::NONE;
23     }
24
25     $this->getResponse()->setHeaderOnly(true);
26     $this->getResponse()->setStatusCode(401);
27
28     return sfView::NONE;
29   }
30
31    /**
32    * Sign in with the Facebook account
33    * @author fabriceb
34    * @since 2009-05-17
35    *
36    */
37   public function executeSignin()
38   {
39     $user = $this->getUser();
40     
41     // first check if user is already logged and not yet Facebook connected
42     if (
43       $user->isAuthenticated()
44       &&
45       !sfFacebook::getGuardAdapter()->getUserFacebookUid($user->getGuardUser())
46       &&
47       sfFacebook::getFacebookClient()->get_loggedin_user()
48       )
49     {
50       $sfGuardUser = $user->getGuardUser();
51       sfFacebook::getGuardAdapter()->setUserFacebookUid($sfGuardUser, sfFacebook::getFacebookClient()->get_loggedin_user());
52       $sfGuardUser->save();
53     }
54     else
55     {
56       $create_automatically = !sfConfig::get('app_facebook_redirect_after_connect', false);
57       $sfGuardUser = sfFacebook::getSfGuardUserByFacebookSession($create_automatically);
58     }
59     
60     if ($sfGuardUser)
61     {
62       $this->getContext()->getUser()->signIn($sfGuardUser);
63
64       $referer = $user->getAttribute('referer', $this->getRequest()->getReferer());
65       $user->getAttributeHolder()->remove('referer');
66
67       $signin_url = sfConfig::get('app_sf_guard_plugin_success_signin_url', $referer);
68
69       $forward = $this->getRequestParameter('forward');
70
71       $signin_url = $forward != '' ? $forward : $signin_url;
72
73       $this->redirect('' != $signin_url ? $signin_url : '@homepage');
74     }
75     // check if user forgot to activate the account
76     $sfGuardUser = sfFacebook::getSfGuardUserByFacebookSession($create_automatically, false);
77     
78     // the user does not exist even in unactivated mode
79     if (!$sfGuardUser)
80     {
81       if ($this->getRequest()->isXmlHttpRequest())
82       {
83         $this->getResponse()->setHeaderOnly(true);
84         $this->getResponse()->setStatusCode(401);
85  
86         return sfView::NONE;
87       }
88  
89       if (!$user->hasAttribute('referer'))
90       {
91         $user->setAttribute('referer', $this->getRequest()->getUri());
92       }
93       
94       $redirect_url = sfConfig::get('app_facebook_redirect_after_connect_url');
95     }
96     // the user exists in unactivated mode
97     else
98     {
99       $this->getUser()->setFlash('error', 'Your account is not activated');
100       $redirect_url = sfConfig::get('sf_login_module').'/'.sfConfig::get('sf_login_action');
101     }
102  
103     return $this->redirect($redirect_url);
104
105   }
106  
107
108 }
109
Note: See TracBrowser for help on using the browser.