Advertisement
Guest User

Untitled

a guest
May 7th, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.65 KB | None | 0 0
  1. <?php
  2.  
  3. class Controller_auth_app extends Controller_auth
  4. {
  5.         function render_authed()
  6.         {
  7.                 $view = new View_page('authed');
  8.                 return $view->render();
  9.         }
  10.        
  11.         function render_restricted()
  12.         {
  13.                 $this->_redirect('shop_control_panel');
  14.                
  15.                 $view = new View_page('restricted');
  16.                 return $view->render();
  17.         }
  18.        
  19.         function pass_recover()
  20.         {
  21.                 $view = new View_page('pass_recover');
  22.                
  23.                 $view->set('error', '');
  24.                 $view->set('success', '');
  25.                
  26.                 if(isset($_POST['submit'])) {
  27.                         $login_email = Cvar::post('login_email', Cvar::STR, '1,255', '');
  28.                         if(!$login_email) {
  29.                                 $view->set('error', Error_msg::get('form_input_error_app'));
  30.                                 return $view->render();
  31.                         }
  32.                        
  33.                         $email = '';
  34.                         $login = '';
  35.                        
  36.                         if(preg_match(cfg('input.email.regx'), $login_email)) {
  37.                                 $email = $login_email;
  38.                         }
  39.                         else {
  40.                                 $login = $login_email;
  41.                         }
  42.  
  43.                         try
  44.                         {      
  45.                                 $db = new Model_auth_app;
  46.                                
  47.                                 if($email) {
  48.                                         $user = $db->pass_recover_by_email($email);
  49.                                 }
  50.                                 else {
  51.                                         $user = $db->pass_recover_by_login($login);
  52.                                 }
  53.  
  54.                                 if($user) {
  55.                                         $pass_recover_key = rnd_hash(32) . rnd_hash(32);
  56.                                        
  57.                                         $db->set_pass_recover($user['id'], $pass_recover_key);
  58.                                        
  59.                                         Mailer::send($user['email'], 'user_pass_recover', array(
  60.                                                 'pass_recover_key' => $pass_recover_key
  61.                                         ));
  62.                                                
  63.                                         Mailer::notify('pass_recover_request', array(
  64.                                                 'login' => $user['login'],
  65.                                                 'email' => $user['email'],
  66.                                                 'ip'    => Client::ip(),
  67.                                         ));
  68.                                 }
  69.                         }
  70.                         catch(Exception $e) {
  71.                                 $view->set('error', Error_msg::get('form_process_error_app'));
  72.                                 return $view->render();
  73.                         }
  74.                                
  75.                         $this->_redirect('auth/pass_recover?success=1');
  76.                 }
  77.                
  78.                 if(isset($_GET['success']) && $_GET['success']) {
  79.                         $view->set('success', 1);
  80.                         return $view->render();
  81.                 }
  82.                
  83.                 return $view->render();
  84.         }
  85.        
  86.         function pass_reset()
  87.         {
  88.                 $pass_recover_key = $this->_get_route_param('pass_recover_key', Cvar::STR, '1,64', '');
  89.                
  90.                 $view = new View_page('pass_reset');
  91.                
  92.                 $view->set('key_error', '');
  93.                 $view->set('submit_error', '');
  94.                 $view->set('success', '');
  95.                
  96.                 if(isset($_POST['submit'])) {
  97.                         $error = '';
  98.                        
  99.                         $pass = Cvar::post('pass', Cvar::REGX, cfg('input.pass.regx'), '');
  100.                         $err_code = Cvar::get_err_code();
  101.                         if($err_code == Cvar::ERR_MISMATCH_PATTERN) {
  102.                                 $error = Error_msg::get('form_data_process_error');
  103.                         }
  104.  
  105.                         $pass_repeat = Cvar::post('pass_repeat', Cvar::REGX, cfg('input.pass.regx'), '');
  106.                         $err_code = Cvar::get_err_code();
  107.                         if($err_code == Cvar::ERR_MISMATCH_PATTERN || $pass_repeat != $pass) {
  108.                                 $error = Error_msg::get('form_data_process_error');
  109.                         }
  110.  
  111.                         if(!$pass_recover_key) {
  112.                                 $error = Error_msg::get('form_data_process_error');
  113.                         }
  114.  
  115.                         if($error) {
  116.                                 $view->set('submit_error', $error);
  117.                                 return $view->render();
  118.                         }
  119.                                
  120.                         try {
  121.                                 $db = new Model_auth_app;
  122.                                
  123.                                 $user_id = $db->get_user_id_by_pass_recover_key($pass_recover_key);
  124.                                 if(!$user_id) {
  125.                                         $view->set('submit_error', Error_msg::get('form_data_process_error'));
  126.                                         return $view->render();
  127.                                 }
  128.                                
  129.                                 $db->set_new_pass_by_user_id($user_id, Auth::md5_pass($pass));
  130.                         }
  131.                         catch(Exception $e) {
  132.                                 $view->set('submit_error', Error_msg::get('form_process_error_app'));
  133.                                 return $view->render();
  134.                         }
  135.                        
  136.                         $this->_redirect('auth/pass_reset?success=1');
  137.                 }
  138.                
  139.                 if(isset($_GET['success']) && $_GET['success']) {
  140.                         $view->set('success', 1);
  141.                         return $view->render();
  142.                 }
  143.        
  144.                 if(!$pass_recover_key) {
  145.                         $view->set('key_error', 1);
  146.                         return $view->render();
  147.                 }
  148.                
  149.                 $db = new Model_auth_app;
  150.  
  151.                 $user_id = $db->get_user_id_by_pass_recover_key($pass_recover_key);
  152.                 if(!$user_id) {
  153.                         $view->set('key_error', 1);
  154.                         return $view->render();
  155.                 }
  156.                
  157.                 return $view->render();
  158.         }
  159.        
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement