コード例 #1
0
ファイル: main.php プロジェクト: petersonb/ourvigor
 public function index()
 {
     $get_user_id = $this->input->get('user_id');
     $facebook_user_id = $this->facebook->getUser();
     if ($this->user_id && $this->session->userdata('facebook_id')) {
         redirect('users');
     } elseif ($this->user_id) {
         $user = new User();
         $user->where('facebook_id', $facebook_user_id);
         $user->get();
         //////////////////////////////////////////////////
         // If the user has not been linked              //
         //////////////////////////////////////////////////
         if (!$user->exists()) {
             // Link the user
             $user = new User($this->user_id);
             $user->facebook_id = $facebook_user_id;
             $user->save();
             redirect('fb/link_account');
         } else {
             redirect('fb/link_account');
         }
     } elseif (!$this->user_id && $get_user_id == 'register' && $facebook_user_id) {
         $facebook_user_info = $this->facebook->api('/me');
         $user = new User();
         $user->where('email', $facebook_user_info['email']);
         $user->get();
         if ($user->exists()) {
             //$this->facebook->logout();
             $data['error_head'] = 'Error : Existing User';
             $data['error_body'] = $this->load->view('content/errors/fb/existing_account', null, TRUE);
             $data['content'] = 'main/error_page';
             $this->load->view('master', $data);
         } else {
             $this->load->helper('keygen');
             $password = keygen_generate();
             $user = new User();
             $user->email = $facebook_user_info['email'];
             $user->firstname = $facebook_user_info['first_name'];
             $user->lastname = $facebook_user_info['last_name'];
             $user->facebook_id = $facebook_user_id;
             $user->password = $password;
             $user->save();
             // TODO : Security on login
             $this->session->set_userdata('user_id', $user->id);
             $this->user_id = $user->id;
             $this->session->set_userdata('facebook_register', TRUE);
             redirect('users/facebook_register');
         }
     } else {
         $this->load->helper('form');
         $data['content'] = array('main/home');
         $this->load->view('master', $data);
     }
 }
コード例 #2
0
ファイル: users.php プロジェクト: petersonb/ourvigor
 private function send_forgot_password_email($user_id)
 {
     $this->load->library('email');
     $this->load->helper('keygen');
     $user = new User($user_id);
     //////////////////////////////////////////////////
     // Generate a unique code                       //
     //////////////////////////////////////////////////
     $code = keygen_generate(64);
     $check = new PasswordReset();
     $check->where('code', $code);
     $check->get();
     while ($check->exists()) {
         $code = keygen_generate(64);
         $check = new PasswordReset();
         $check->where('code', $code);
         $check->get();
     }
     $reset = $user->passwordreset;
     $reset->get();
     if ($reset->exists()) {
         $reset->code = $code;
         $reset->save();
     } else {
         $reset = new PasswordReset();
         $reset->code = $code;
         $reset->save($user);
     }
     $this->user_session->set_account_invalid();
     $data['code'] = $reset->code;
     $data['user'] = array('id' => $user->id, 'firstname' => $user->firstname, 'lastname' => $user->lastname, 'email' => $user->email);
     $data['content'] = 'password_reset';
     $message = $this->load->view('email_master', $data, true);
     $this->email->from('*****@*****.**', 'OurVigor Support');
     $this->email->to($user->email);
     $this->email->subject('OurVigor Password Reset');
     $this->email->message($message);
     $this->email->send();
 }