Advertisement
Guest User

Untitled

a guest
May 6th, 2018
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.54 KB | None | 0 0
  1. <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2.  
  3. class Login extends CI_Controller {
  4.  
  5.     public function __construct()
  6.     {
  7.         parent::__construct();
  8.     }
  9.  
  10.     public function index()
  11.     {
  12.         $data['modal_title'] = "Entrar";
  13.         $data['modal_size'] = "small";
  14.  
  15.         $this->template->load('modal', 'login', $data);
  16.     }
  17.  
  18.     public function required()
  19.     {
  20.         $data['modal_title'] = "Ops, você precisa efetuar o login";
  21.         $data['modal_size'] = "small";
  22.  
  23.         $this->template->load('modal', 'login_required', $data);
  24.     }
  25.  
  26.     public function in()
  27.     {
  28.         $email = $this->input->post('email');
  29.         $password = md5($this->input->post('password'));
  30.  
  31.         $login = $this->user_model->login($email, $password);
  32.  
  33.         if($login){
  34.             $this->session->set_userdata('login', $login);
  35.  
  36.             $data = array(
  37.                 'use_date_login' => date('Y-m-d H:i:s'),
  38.                 'use_last_ip' => $_SERVER['REMOTE_ADDR']
  39.             );
  40.  
  41.             $this->user_model->update($data, $login);
  42.  
  43.             echo "login_success";
  44.         }else{
  45.             $this->session->set_userdata('login', false);
  46.  
  47.             echo "login_error";
  48.         }
  49.     }
  50.  
  51.     public function password($view = "modal", $token = false)
  52.     {
  53.         if($view == "modal"){
  54.             $data['modal_title'] = "Esqueceu a senha?";
  55.             $data['modal_size'] = "small";
  56.  
  57.             $this->template->load('modal', 'login_password', $data);
  58.         }elseif ($view == "send") {
  59.             $email = $this->input->post("email");
  60.  
  61.             $user = $this->user_model->getByEmail($email);
  62.  
  63.             if($user){
  64.                 $token = md5($_SERVER['REMOTE_ADDR'].date("H:i:s"));
  65.  
  66.                 $data = array('use_token' => $token);
  67.  
  68.                 $this->user_model->update($data, $user);
  69.  
  70.                 $link = base_url("login/password/recover/".$token);
  71.  
  72.                 /* Email Details */
  73.                 $email_details = $this->main_model->emailsDetails(2);
  74.  
  75.                 /* Message */
  76.                 $content = $email_details->email_content;
  77.  
  78.                 if (preg_match_all('/({\$+\w+})/', $content, $matches)){
  79.  
  80.                     foreach ($matches[0] as $key => $value) {
  81.                         $variable = str_replace('{', '', $value);
  82.                         $variable = str_replace('}', '', $variable);
  83.                         $string = eval('return '. $variable . ';');
  84.  
  85.                         $content = str_replace($value, $string, $content);
  86.                     }
  87.                 }
  88.  
  89.                 $message = $content;
  90.  
  91.                 /* Subject */
  92.                 $subject = $email_details->email_subject;
  93.  
  94.                 $this->main_model->email($email, $subject, $message);
  95.  
  96.                 $this->session->set_flashdata('return', 'login_password');
  97.             }else{
  98.                 $this->session->set_flashdata('return', 'login_password_email');
  99.             }
  100.  
  101.             redirect("/");
  102.         }elseif ($view == "recover") {
  103.             $verifyToken = $this->user_model->tokenVerify($token);
  104.  
  105.             if($verifyToken){
  106.                 $data['token'] = $token;
  107.  
  108.                 /* SEO */
  109.                 $data['seo_title'] = "Recuperação de Senha";
  110.  
  111.                 /* View */
  112.                 $this->template->load('app', 'login_password_recover', $data);
  113.             }else{
  114.                 $this->session->set_flashdata('return', 'token_no_exist');
  115.  
  116.                 redirect('/');
  117.             }
  118.         }elseif ($view == "update") {
  119.             $new_pass = $this->input->post('new_pass');
  120.             $token = $this->input->post('token');
  121.  
  122.             $this->user_model->passRecover($token, md5($new_pass));
  123.  
  124.             $this->session->set_flashdata('return', 'login_recover');
  125.  
  126.             redirect('/');
  127.         }
  128.     }
  129.  
  130.     public function facebook_auth($step)
  131.     {
  132.         $fb_config = array(
  133.             'appId'     => $this->config->item('facebook_app_id'),
  134.             'secret'    => $this->config->item('facebook_app_secret')
  135.         );
  136.  
  137.         $this->load->library('facebook', $fb_config);
  138.                
  139.  
  140.         if($step == "try"){ // redirect to facebook form
  141.             $facebook_login_url = $this->facebook->getLoginUrl(array(
  142.                 'redirect_uri' => $this->config->item('facebook_link_redirect'),
  143.                 'scope' => 'email'
  144.             ));
  145.  
  146.             redirect($facebook_login_url);
  147.         }elseif ($step == "return") { // return from facebook form
  148.             $user_facebook = $this->facebook->getUser();
  149.  
  150.             $code = $_GET['code'];
  151.  
  152.             if($user_facebook){
  153.                 $facebook_user_profile = $this->facebook->api('/me?fields=id,name,email');
  154.  
  155.                 /* verify if user allow email */
  156.                 if($facebook_user_profile['email']){
  157.                     $id = $facebook_user_profile['id'];
  158.                     $name = validate_name($facebook_user_profile['name']);
  159.                     $email = $facebook_user_profile['email'];
  160.  
  161.                     $verify = $this->user_model->getByEmail($email);
  162.  
  163.                     /* verify if user already register */
  164.                     if($verify){ // login
  165.                         $user_id = $verify;
  166.                        
  167.                         $data = array('use_facebook_id' => $id);
  168.  
  169.                         $this->user_model->update($data, $verify);
  170.  
  171.                         $this->session->set_userdata('login', $verify);
  172.                     }else{ // register
  173.                         $data = array(
  174.                             'use_name' => $name,
  175.                             'use_email' => $email,
  176.                             'use_password' => md5($email),
  177.                             'use_facebook_id' => $id
  178.                         );
  179.  
  180.                         $user = $this->user_model->insert($data);
  181.  
  182.                         if($user){
  183.                             $user_id = $user;
  184.  
  185.                             $this->session->set_userdata('login', $user);
  186.  
  187.                             $this->session->set_flashdata('return', 'register_new');
  188.                         }
  189.                     }
  190.  
  191.                     $log_data = array(
  192.                         'use_date_login' => date('Y-m-d H:i:s'),
  193.                         'use_last_ip' => $_SERVER['REMOTE_ADDR']
  194.                     );
  195.  
  196.                     $this->user_model->update($log_data, $user_id);
  197.  
  198.                     redirect('cliente/painel');
  199.                 }else{ // if email not allowed
  200.                     $this->session->set_flashdata('return', 'facebook_email_required');
  201.  
  202.                     redirect('/');
  203.                 }
  204.             }else{
  205.                 $this->session->set_flashdata('return', 'login_required');
  206.  
  207.                 redirect('/');
  208.             }
  209.         }else{
  210.             $this->out();
  211.         }
  212.     }
  213.  
  214.     public function out()
  215.     {
  216.         /* session destroy */
  217.         $this->session->set_userdata('login', false);
  218.         $this->session->sess_destroy();
  219.  
  220.         redirect("/");
  221.     }
  222.  
  223. }
  224.  
  225. /* End of file Login.php */
  226. /* Location: ./application/controllers/Login.php */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement