diff --git a/www/application/config/constants.php b/www/application/config/constants.php index 316455ee..4a890102 100644 --- a/www/application/config/constants.php +++ b/www/application/config/constants.php @@ -155,6 +155,7 @@ define('WRENCHBOARD_RESEND_PENDING_LINK', 11019); define('WRENCHBOARD_ACCOUNT_CREATEACC', 11020); define('WRENCHBOARD_ACCOUNT_LOGIN', 11025); define('WRENCHBOARD_FACEBOOK_LOGIN', 11026); +define('WRENCHBOARD_GOOGLE_LOGIN', 11027); define('WRENCHBOARD_SEND_CONTACTUS', 11030); define('WRENCHBOARD_ACCOUNT_SENDREFER',11032); define('WRENCHBOARD_ACCOUNT_REFERLINK',11033); diff --git a/www/application/controllers/Login.php b/www/application/controllers/Login.php index 2866c93c..41d3e0ae 100644 --- a/www/application/controllers/Login.php +++ b/www/application/controllers/Login.php @@ -221,77 +221,99 @@ class Login extends WRB_Controller { //Processes social login function auth($provider = NULL) { + $data = array(); // Load Hybridauth's helper $this->load->helper('hybridauth'); $code = $this->input->get('code'); if ($code!='') { $client = get_google_client(); $token = $client->fetchAccessTokenWithAuthCode($code); - $client->setAccessToken($token['access_token']); - - // get profile info - $google_oauth = new Google_Service_Oauth2($client); - $google_account_info = $google_oauth->userinfo->get(); - $email = $google_account_info->email; - $name = $google_account_info->name; + if (is_array($token) && array_key_exists('access_token',$token)) { + $client->setAccessToken($token['access_token']); + + // get profile info + $google_oauth = new Google_Service_Oauth2($client); + $google_account_info = $google_oauth->userinfo->get(); + $id = $google_account_info->id; + $email = $google_account_info->email; + $name = $google_account_info->name; - var_dump($google_account_info); - exit(); + //var_dump($google_account_info); + //exit(); - if ($email != '') { - /* - $user = array( - 'id' => '', - 'name' => '', - 'email' => '' - ); - list($proceed, $data) = $this->checkUserExists($user, $data); - - // TODO - if ($proceed) { - $name = (string) $user["name"]; - if (trim($name) == "") - $name = strtok($user["email"], "@"); - $data['fb_id'] = $user["id"]; - $data['firstname'] = strtok($name, " "); - $data['lastname'] = strtok(" "); - $data['email'] = $user["email"]; - $data['sessionid'] = rand(10000, 99999) . "A" . rand(10000, 99999); - $data['action'] = WRENCHBOARD_FACEBOOK_LOGIN; - $this->load->model('backend_model'); - $out = array(); - $res = $this->backend_model->wrenchboard_api($data, $out); - if ($res == PHP_LOGIN_OK) { - $this->load->model('account_model'); - $ret = $this->account_model->username_data($out); - if ($res !== false) { - $data["login_message"] = "Welcome..."; - // yes person has an account - $_SESSION['session_id'] = $out["session"]; - $_SESSION['username'] = $ret->username; - $_SESSION['name'] = $ret->username; - $_SESSION['firstname'] = $ret->firstname; - $_SESSION['lastname'] = $ret->lastname; - $_SESSION['email'] = $ret->email; - $_SESSION['member_id'] = $ret->id; - $_SESSION['log_count'] = 0; - $_SESSION['mesaage_count'] = 0; - $this->findOffers($_SESSION['email']); - $_SESSION['message_snapshot'] = $this->myMessagesSnapshot(); + if ($id !='' && $email != '') { + $user = array( + 'id' => $id, + 'name' => $name, + 'email' => $email + ); + list($proceed, $data) = $this->checkUserExists($user, $data); - $this->logUser('Account login'); - $this->refreshAccountDetail($_SESSION['member_id']); - $this->getSessionArray(); + if ($proceed) { - $this->excudedEmails(); - - redirect('dash'); + $name = (string) $user["name"]; + if (trim($name) == "") { + $name = strtok($user["email"], "@"); } + $data['google_id'] = $user["id"]; + $data['firstname'] = strtok($name, " "); + $data['lastname'] = strtok(" "); + $data['email'] = $user["email"]; + $data['sessionid'] = rand(10000, 99999) . "A" . rand(10000, 99999); + $data['action'] = WRENCHBOARD_GOOGLE_LOGIN; + $this->load->model('backend_model'); + $out = array(); + + echo "
";
+                        var_dump($data);
+                        exit();
+                        /*    
+                        // TODO
+                        $res = $this->backend_model->wrenchboard_api($data, $out);
+                        if ($res == PHP_LOGIN_OK) {
+                            $this->load->model('account_model');
+                            $ret = $this->account_model->username_data($out);
+                            if ($res !== false) {
+                                $data["login_message"] = "Welcome...";
+                                // yes person has an account 
+                                $_SESSION['session_id'] = $out["session"];
+                                $_SESSION['username'] = $ret->username;
+                                $_SESSION['name'] = $ret->username;
+                                $_SESSION['firstname'] = $ret->firstname;
+                                $_SESSION['lastname'] = $ret->lastname;
+                                $_SESSION['email'] = $ret->email;
+                                $_SESSION['member_id'] = $ret->id;
+                                $_SESSION['log_count'] = 0;
+                                $_SESSION['mesaage_count'] = 0;
+                                $this->findOffers($_SESSION['email']);
+                                $_SESSION['message_snapshot'] = $this->myMessagesSnapshot();
+
+                                $this->logUser('Account login');
+                                $this->refreshAccountDetail($_SESSION['member_id']);
+                                $this->getSessionArray();
+
+                                $this->excudedEmails();
+
+                                redirect('dash');
+                            }
+                        }
+                        //*/
+                    } else {
+                        // Cannot proceed - duplicate email?
+                        redirect('login');
                     }
-                }    
-                // */
+                } else {
+                    // Invalid or missing id and/or email - login failed?
+                    redirect('login');
+                }
+            } else {
+                // Missing access token / invalid grant - expired credentials?
+                redirect('login');
             }
-        }       
+        } else {
+            // Invalid or missing code - login failed?
+            redirect('login');
+        }      
     }
 
     //Processes social login
diff --git a/www/application/views/site3/external/view_home.php b/www/application/views/site3/external/view_home.php
index 402cb2fe..49d7f1c0 100644
--- a/www/application/views/site3/external/view_home.php
+++ b/www/application/views/site3/external/view_home.php
@@ -66,7 +66,7 @@
 								
 								
or
- +