]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Logout works properly now.
authorZach Copley <zach@controlyourself.ca>
Tue, 19 May 2009 01:07:45 +0000 (01:07 +0000)
committerZach Copley <zach@controlyourself.ca>
Tue, 19 May 2009 01:07:45 +0000 (01:07 +0000)
plugins/FBConnect/FBConnectLogin.php
plugins/FBConnect/FBConnectPlugin.php

index a544352f32c2bb06e24ed3b38e7c15454bbca0e5..c2a2885717f3b8c587f15fecf6507a1dd0be3873 100644 (file)
@@ -254,6 +254,8 @@ class FBConnectloginAction extends Action
 
     function tryLogin()
     {
+        common_debug("Trying Facebook Login...");
+
         $flink = Foreign_link::getByForeignID($this->fbuid, FACEBOOK_SERVICE);
 
         if ($flink) {
@@ -261,7 +263,7 @@ class FBConnectloginAction extends Action
 
             if ($user) {
 
-                common_debug("Logged in Facebook user $flink->foreign_id as user $user->id");
+                common_debug("Logged in Facebook user $flink->foreign_id as user $user->id ($user->nickname)");
 
                 common_set_user($user);
                 common_real_login(true);
@@ -284,6 +286,7 @@ class FBConnectloginAction extends Action
                                     array('nickname' =>
                                           $nickname));
         }
+
         common_redirect($url, 303);
     }
 
@@ -302,10 +305,6 @@ class FBConnectloginAction extends Action
 
     function bestNewNickname()
     {
-
-        common_debug("bestNewNickname()");
-        common_debug(print_r($this->fb_fields, true));
-
         if (!empty($this->fb_fields['name'])) {
             $nickname = $this->nicknamize($this->fb_fields['name']);
             if ($this->isNewNickname($nickname)) {
index 30532e5ec449d72c43618b477646430e336bd998..342a624927219eaec9b9268b1b03386af1d23ad1 100644 (file)
@@ -67,10 +67,8 @@ class FBConnectPlugin extends Plugin
 
         $name = get_class($action);
 
-        common_debug("action: $name");
-
         // Avoid a redirect loop
-        if ($name != 'FBConnectloginAction') {
+        if (!in_array($name, array('FBConnectloginAction', 'ClientErrorAction'))) {
 
             $this->checkFacebookUser($action);
 
@@ -122,7 +120,14 @@ class FBConnectPlugin extends Plugin
         $apikey = common_config('facebook', 'apikey');
         $plugin_path = common_path('plugins/FBConnect');
 
-        $login_url = common_get_returnto() || common_local_url('public');
+        $url = common_get_returnto();
+
+        if ($url) {
+            // We don't have to return to it again
+            common_set_returnto(null);
+        } else {
+            $url = common_local_url('public');
+        }
 
         $html = sprintf('<script type="text/javascript">FB.init("%s", "%s/xd_receiver.htm");
 
@@ -130,7 +135,7 @@ class FBConnectPlugin extends Plugin
                                 window.location = "%s";
                             }
 
-                         </script>', $apikey, $plugin_path, $login_url);
+                         </script>', $apikey, $plugin_path, $url);
 
 
         $action->raw($html);
@@ -203,11 +208,16 @@ class FBConnectPlugin extends Plugin
 
     function checkFacebookUser() {
 
+        $user = common_current_user();
+
+        if ($user) {
+            return;
+        }
+
         try {
 
             $facebook = getFacebook();
             $fbuid = $facebook->get_loggedin_user();
-            $user = common_current_user();
 
             // If you're a Facebook user and you're logged in do nothing
 
@@ -244,35 +254,6 @@ class FBConnectPlugin extends Plugin
 
     }
 
-    function onStartLogout($action)
-    {
-        common_debug("onEndLogout()");
-
-        common_set_user(null);
-        common_real_login(false); // not logged in
-        common_forgetme(); // don't log back in!
-
-        try {
-
-            $facebook = getFacebook();
-            $fbuid = $facebook->get_loggedin_user();
-
-            // XXX: ARGGGH this doesn't work right!
-
-            if ($fbuid) {
-                $facebook->expire_session();
-                $facebook->logout(common_local_url('public'));
-              }
-
-        } catch (Exception $e) {
-            common_debug('Problem expiring FB session');
-        }
-
-        common_debug("logged out.");
-
-        return false;
-    }
-
 }