fix
This commit is contained in:
@@ -1,5 +1,13 @@
|
||||
<?php
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
//Include Hybridauth autoloader
|
||||
require APPPATH . '/third_party/hybridauth/autoload.php';
|
||||
|
||||
//Import Hybridauth's namespace
|
||||
use Hybridauth\Hybridauth;
|
||||
|
||||
class Login extends WRB_Controller {
|
||||
|
||||
public function __construct() {
|
||||
@@ -48,7 +56,7 @@ class Login extends WRB_Controller {
|
||||
$out = array();
|
||||
$res = $this->backend_model->wrenchboard_api($data, $out);
|
||||
$is_live = $this->backend_model->cfgReadChar("system.live");
|
||||
// print_r($out);
|
||||
// print_r($out);
|
||||
if ($res == PHP_LOGIN_OK) {
|
||||
$this->load->model('account_model');
|
||||
$ret = $this->account_model->username_data($data);
|
||||
@@ -90,30 +98,14 @@ class Login extends WRB_Controller {
|
||||
} else {
|
||||
echo validation_errors();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if ($this->lib_login->is_authenticated()) {
|
||||
$fb_data = $this->lib_login->getData($this->lib_login->get_access_token());
|
||||
if (isset($fb_data['me'])) {
|
||||
$user = $fb_data['me'];
|
||||
$proceed = false;
|
||||
//$data["login_message"] = $user["id"]."/".$user["name"]."/".$user["email"]."<a href='".$this->lib_login->getLogoutUrl()."'>Logout</a>";
|
||||
$q = "SELECT * FROM members WHERE lower(email)=lower('" . $user["name"] . "') AND password IS NULL AND fb_id='" . $user["id"] . "'";
|
||||
$query = $this->db->query($q);
|
||||
if (count($query->result_array)) {
|
||||
// Account exists
|
||||
$proceed = true;
|
||||
} else {
|
||||
$q = "SELECT * FROM members WHERE lower(email)=lower('" . $user["name"] . "')";
|
||||
$query = $this->db->query($q);
|
||||
if (count($query->result_array)) {
|
||||
$data["login_message"] = "The e-mail " . $user["email"] . " is already registered. You should login with your username and password.";
|
||||
} else {
|
||||
// Create account
|
||||
$proceed = true;
|
||||
}
|
||||
}
|
||||
|
||||
list($proceed, $data) = $this->checkUserExists($user, $data);
|
||||
|
||||
if ($proceed) {
|
||||
$name = (string) $user["name"];
|
||||
if (trim($name) == "")
|
||||
@@ -169,12 +161,26 @@ class Login extends WRB_Controller {
|
||||
//----- long out $this->load->view('templates/header_boxed', $data);
|
||||
//$this->load->view('users/view_login', $data);
|
||||
//$this->load->view('users/view_external_footer');
|
||||
|
||||
// Load Hybridauth's helper
|
||||
$this->load->helper('hybridauth');
|
||||
|
||||
// Instantiate Hybridauth's classes
|
||||
$hybrid = new Hybridauth(get_hybridauth_config());
|
||||
|
||||
// Get login links
|
||||
$login_links = get_hybridauth_links($hybrid, $this->router);
|
||||
|
||||
// Pass login links to html template
|
||||
$data['login_links'] = $login_links;
|
||||
|
||||
// Render html template
|
||||
$this->load->view('site3/external/view_home',$data);
|
||||
}
|
||||
|
||||
//<a href="/password_recovery">Forgot Password ?</a>
|
||||
//<a href="/password_recovery">Forgot Password ?</a>
|
||||
|
||||
public function refreshAccountDetail($member_id) {
|
||||
public function refreshAccountDetail($member_id) {
|
||||
$this->load->model('account_model');
|
||||
$qr = $this->account_model->loadAccountData($member_id);
|
||||
$this->load->model('account_model');
|
||||
@@ -184,13 +190,153 @@ class Login extends WRB_Controller {
|
||||
$_SESSION['active_task'] = $this->account_model->loadActiveTaskCount($member_id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private function checkUserExists($user, $data)
|
||||
{
|
||||
$proceed = false;
|
||||
//$data["login_message"] = $user["id"]."/".$user["name"]."/".$user["email"]."<a href='".$this->lib_login->getLogoutUrl()."'>Logout</a>";
|
||||
$q = "SELECT * FROM members WHERE lower(email)=lower('" . $user["name"] . "') AND password IS NULL AND fb_id='" . $user["id"] . "'";
|
||||
$query = $this->db->query($q);
|
||||
if (count($query->result_array)) {
|
||||
// Account exists
|
||||
$proceed = true;
|
||||
} else {
|
||||
$q = "SELECT * FROM members WHERE lower(email)=lower('" . $user["name"] . "')";
|
||||
$query = $this->db->query($q);
|
||||
if (count($query->result_array)) {
|
||||
$data["login_message"] = "The e-mail " . $user["email"] . " is already registered. You should login with your username and password.";
|
||||
} else {
|
||||
// Create account
|
||||
$proceed = true;
|
||||
}
|
||||
}
|
||||
return array($proceed, $data);
|
||||
}
|
||||
|
||||
public function logout() {
|
||||
$this->lib_login->destroy_session();
|
||||
redirect('login', redirect);
|
||||
}
|
||||
|
||||
//Processes social login
|
||||
function auth($provider = NULL)
|
||||
{
|
||||
// Load Hybridauth's helper
|
||||
$this->load->helper('hybridauth');
|
||||
|
||||
$service = NULL;
|
||||
|
||||
try
|
||||
{
|
||||
//Instantiate Hybridauth's classes
|
||||
$hybrid = new Hybridauth(get_hybridauth_config());
|
||||
|
||||
//Check if given provider is enabled
|
||||
if ((isset($provider)) && in_array($provider, $hybrid->getProviders()))
|
||||
{
|
||||
$this->session->set_userdata('provider', $provider);
|
||||
}
|
||||
|
||||
//Update variable with the valid provider
|
||||
$provider = $this->session->userdata('provider');
|
||||
|
||||
if ($provider)
|
||||
{
|
||||
$service = $hybrid->authenticate($provider);
|
||||
if ($service->isConnected())
|
||||
{
|
||||
//Get user profile
|
||||
$profile = $service->getUserProfile();
|
||||
|
||||
//Get user contacts
|
||||
$contacts = $service->getUserContacts();
|
||||
|
||||
/*
|
||||
Disconnect the service else HA would reuse stored session data
|
||||
rather making a fresh request in case the user has denied permissions
|
||||
in the previous authorization request
|
||||
*/
|
||||
$service->disconnect();
|
||||
|
||||
$this->session->unset_userdata('provider');
|
||||
|
||||
//Display the profile data
|
||||
echo 'Name: ' . $profile->displayName;
|
||||
print_r($profile);
|
||||
exit();
|
||||
|
||||
/*
|
||||
$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();
|
||||
|
||||
$this->logUser('Account login');
|
||||
$this->refreshAccountDetail($_SESSION['member_id']);
|
||||
$this->getSessionArray();
|
||||
|
||||
$this->excudedEmails();
|
||||
|
||||
redirect('dash');
|
||||
}
|
||||
}
|
||||
}
|
||||
// */
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->session->set_flashdata('showmsg', array('msg' => 'Sorry! We couldn\'t authenticate your identity.'));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
if (isset($service) && $service->isConnected())
|
||||
$service->disconnect();
|
||||
|
||||
$error = 'Sorry! We couldn\'t authenticate you.';
|
||||
$this->session->set_flashdata('showmsg', array('msg' => $error));
|
||||
$error .= '\nError Code: ' . $e->getCode();
|
||||
$error .= '\nError Message: ' . $e->getMessage();
|
||||
|
||||
log_message('error', $error);
|
||||
}
|
||||
|
||||
//redirect();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user