Example #1
0
 function unsubscribe($email_hash)
 {
     if ($email_hash !== '') {
         $this->load->model('Email_model');
         $email_details_array = $this->Email_model->get_email_details_by_hash($email_hash);
         $data = array();
         $this->load->helper('form');
         if ($this->input->post()) {
             $this->load->library('form_validation');
             $this->form_validation->set_rules('user_email', 'Email', 'trim|required|valid_email');
             $this->form_validation->set_rules('captcha_image', 'Image Text', 'trim|required|callback_validate_captcha');
             $this->form_validation->set_error_delimiters('<span class="help-block">', '</span>');
             if ($this->form_validation->run() && $this->input->post('user_email') === $email_details_array['email_to']) {
                 $user_details_array = $this->User_model->get_user_by_email($email_details_array['email_to']);
                 if (count($user_details_array) > 0) {
                     $time_now = date('Y-m-d H:i:s');
                     $user_update_array = array('user_security_hash' => md5($time_now . $this->input->post('user_email')), 'newsletter_status' => '0', 'user_modified' => $time_now);
                     if ($this->User_model->edit($user_details_array['user_id'], $user_update_array)) {
                         $data['success'] = 'Unsubscribing Complete !!!';
                     }
                 } else {
                     $data['error'] = 'Unsubscribing Incomplete !!!';
                 }
             } else {
                 $data['error'] = 'Unsubscribing Incomplete !!!';
             }
         }
         $this->load->library('form_validation');
         $data['email_to'] = $email_details_array['email_to'];
         $data['captcha_image'] = parent::create_captcha();
         $this->render_view($data, 'auth');
     } else {
         redirect('auth/login', 'refresh');
     }
 }
Example #2
0
 function reset_password($user_security_hash = '')
 {
     $max_attempts = 3;
     if (!isset($_SESSION['reset_attempt'])) {
         $_SESSION['reset_attempt'] = 1;
     }
     $data = array();
     $data['show_form'] = TRUE;
     if ($user_security_hash != '') {
         $this->load->model('Auth_model');
         $this->load->helper('form');
         $user_details_array = $this->Auth_model->get_user_details_by_user_security_hash($user_security_hash);
         if (count($user_details_array) > 0) {
             if (!in_array($user_details_array['user_status'], array('0', '1'))) {
                 session_destroy();
                 $this->session->sess_destroy();
                 $data['error'] = 'Account Suspended !!!';
                 $data['show_form'] = FALSE;
             } else {
                 $this->load->library('form_validation');
                 if ($this->input->post()) {
                     $this->form_validation->set_rules('user_login_password', 'Password', 'trim|required|min_length[5]');
                     $this->form_validation->set_rules('user_confirm_password', 'Confirm Password', 'trim|required|matches[user_login_password]');
                     $this->form_validation->set_rules('captcha_image', 'Image Text', 'trim|required|callback_validate_captcha');
                     $this->form_validation->set_error_delimiters('<span class="help-block">', '</span>');
                     if ($this->form_validation->run()) {
                         $this->load->library('encrypt');
                         $time_now = date('Y-m-d H:i:s');
                         $user_array = array('user_login_salt' => md5($time_now), 'user_login_password' => md5(md5(md5($time_now) . $this->input->post('user_login_password'))), 'user_password_hash' => $this->encrypt->encode($this->input->post('user_login_password'), md5(md5(md5($time_now) . $this->input->post('user_login_password')))), 'user_security_hash' => md5($time_now . $this->input->post('user_login_password')), 'user_status' => '1', 'user_modified' => $time_now);
                         if ($this->Auth_model->update_user_details_by_user_security_hash($user_security_hash, $user_array)) {
                             $data['success'] = 'Password Changed Successfully.';
                             $data['show_form'] = FALSE;
                             session_destroy();
                             $this->session->sess_destroy();
                         } else {
                             session_destroy();
                             $this->session->sess_destroy();
                             $data['error'] = 'Error Resetting Password !!!';
                             $data['show_form'] = TRUE;
                         }
                     } else {
                         $_SESSION['reset_attempt'] += 1;
                         if ($_SESSION['reset_attempt'] > $max_attempts) {
                             $this->load->library('encrypt');
                             $time_now = date('Y-m-d H:i:s');
                             $user_array = array('user_security_hash' => md5($time_now . $this->input->post('user_login_password')), 'user_modified' => $time_now);
                             if ($this->Auth_model->update_user_details_by_user_security_hash($user_security_hash, $user_array)) {
                                 $data['error'] = 'Link Disabled Permanently !!!';
                                 $data['show_form'] = FALSE;
                                 session_destroy();
                                 $this->session->sess_destroy();
                             }
                         } else {
                             $data['error'] = 'Error Resetting Password !!!';
                             $data['show_form'] = TRUE;
                         }
                     }
                 }
             }
         } else {
             session_destroy();
             $this->session->sess_destroy();
             $data['error'] = 'Invalid Link !!!';
             $data['show_form'] = FALSE;
         }
     } else {
         session_destroy();
         $this->session->sess_destroy();
         $data['error'] = 'Invalid Link !!!';
         $data['show_form'] = FALSE;
     }
     $data['captcha_image'] = parent::create_captcha();
     $this->render_view($data, 'auth');
 }