Advertisement
Guest User

Untitled

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