Exemple #1
0
function getUniqueUsernameFromEmail($email, $user_id = NULL)
{
    require_once APPPATH . '/models/common_model.php';
    $model = new Common_model();
    $explode_email = explode('@', $email);
    $username = trim($explode_email[0]);
    $whereCondArr = array('user_username' => $username);
    if ($user_id != NULL) {
        $whereCondArr['user_id !='] = $user_id;
    }
    $is_exists = $model->is_exists('user_id', TABLE_USERS, $whereCondArr);
    if (!empty($is_exists)) {
        $username = getUniqueUsernameFromEmail($username . '-' . rand(100, 999));
    }
    return $username;
}
Exemple #2
0
 public function facebookAuth($connect = FALSE)
 {
     if ($this->input->get('code')) {
         $this->load->library("SocialLib");
         $model = new Common_model();
         $socialLib = new SocialLib();
         $facebook_user_obj = $socialLib->getFacebookUserObject();
         if ($facebook_user_obj['status'] == 'success') {
             if (!empty($facebook_user_obj['data'])) {
                 $facebook_id = $facebook_user_obj['data']['id'];
                 $facebook_access_token = $facebook_user_obj['accessToken'];
                 if ($connect == FALSE) {
                     if (isset($facebook_user_obj['data']['email'])) {
                         $facebook_name = $facebook_user_obj['data']['name'];
                         $facebook_email = $facebook_user_obj['data']['email'];
                         $is_exists = $model->is_exists('user_password', TABLE_USERS, array('user_email' => $facebook_email, 'user_facebook_id' => $facebook_id));
                         if (empty($is_exists)) {
                             // get user profile picture here
                             $facebook_image_url = getFacebookUserImageSource($facebook_id, NULL, USER_IMG_WIDTH);
                             $new_image_path = USER_IMG_PATH . '/' . getEncryptedString($facebook_id . time()) . '.jpg';
                             copy($facebook_image_url, $new_image_path);
                             $user_password = md5($facebook_id . time());
                             $data_array = array('user_fullname' => addslashes($facebook_name), 'user_email' => $facebook_email, 'user_facebook_id' => $facebook_id, 'user_facebook_accesstoken' => $facebook_access_token, 'user_facebook_array' => json_encode($facebook_user_obj), 'user_created_on' => date('Y-m-d H:i:s'), 'user_ipaddress' => USER_IP, 'user_useragent' => USER_AGENT, 'user_password' => $user_password, 'user_username' => getUniqueUsernameFromEmail($facebook_email), 'user_profile_picture' => $new_image_path);
                             $model->insertData(TABLE_USERS, $data_array);
                             $this->session->set_flashdata('success', 'Welcome aboard, ' . $facebook_name);
                         } else {
                             $user_password = $is_exists[0]['user_password'];
                         }
                         // loggin user in
                         $this->load->library('Login_auth');
                         $login_auth = new Login_auth();
                         $login_auth->login($facebook_email, $user_password, base_url('my-account'), base_url('login'));
                     } else {
                         $this->session->set_flashdata('error', 'Email required when logging in with Facebook');
                         redirect(base_url('login'));
                     }
                 } elseif ($connect == 'connect' && isset($this->session->userdata['user_id'])) {
                     $user_id = $this->session->userdata['user_id'];
                     $next_url = base_url('my-account');
                     $is_exists = $model->is_exists('user_id', TABLE_USERS, array('user_id !=' => $user_id, 'user_facebook_id' => $facebook_id));
                     if (empty($is_exists)) {
                         $data_array = array('user_facebook_id' => $facebook_id, 'user_facebook_accesstoken' => $facebook_access_token, 'user_facebook_array' => json_encode($facebook_user_obj));
                         $model->updateData(TABLE_USERS, $data_array, array('user_id' => $this->session->userdata['user_id']));
                         $this->session->set_flashdata('success', 'Facebook account connected successfully');
                         if ($this->input->get('next')) {
                             $next_url = $this->input->get('next');
                         }
                     } else {
                         $this->session->set_flashdata('error', 'Another user already exists with this Facebook account');
                     }
                     redirect($next_url);
                 }
             } else {
                 $this->session->set_flashdata('error', 'An error occurred. Please try again.');
                 redirect(base_url('login'));
             }
         } else {
             $this->session->set_flashdata('error', $facebook_user_obj['data']);
             redirect(base_url('login'));
         }
     } else {
         display_404_page();
     }
 }