Guest User

Untitled

a guest
May 15th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.82 KB | None | 0 0
  1. function random_str($length = 10, $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'){
  2. $str = '';
  3. $max = mb_strlen($keyspace, '8bit') - 1;
  4. for ($i = 0; $i < $length; ++$i) {
  5. $str .= $keyspace[random_int(0, $max)];
  6. }
  7. return $str;
  8. }
  9.  
  10. public function change_password($token){
  11. if(isset($this->session->userdata['logged_in'])) {
  12. redirect('dashboard');
  13. }
  14. $user_info = $this->User_model->get_info_from_reset_token($token);
  15. if(!isset($user_info)){
  16. show_404();
  17. die();
  18. }
  19. $username = $user_info->username;
  20. $timestamp = $user_info->timestamp;
  21.  
  22. $this->session->set_flashdata('username',$username);
  23.  
  24. $time = new DateTime($timestamp, new DateTimeZone('UTC'));
  25. $res_time = strtotime($time->format('Y-m-d H:i:s O'));
  26. $now_time = time();
  27. if(($now_time-$res_time)<86400){
  28. $this->load->view('auth/set_password');
  29. }
  30. else {
  31. $data = array(
  32. 'error_msg' => "Reset link has expired. Enter username to send again."
  33. );
  34. $this->load->view('auth/reset_password',$data);
  35. }
  36. }
  37.  
  38. public function set_reset_password(){
  39. if(isset($this->session->userdata['logged_in'])) {
  40. redirect('dashboard');
  41. }
  42. $password = $this->input->post('password');
  43.  
  44. $this->User_model->update_password($password,$_SESSION['username']);
  45. $this->session->unset_userdata['username'];
  46. $this->load->view('auth/reset_pass_done');
  47. }
  48.  
  49. public function logout(){
  50. $this->session->unset_userdata('logged_in');
  51. redirect('auth');
  52. }
  53. }
  54.  
  55.  
  56. ---------------------------------Model----------------------------------------------
  57.  
  58. <?php
  59. defined('BASEPATH') OR exit('No direct script access allowed');
  60.  
  61. class User_model extends CI_Model {
  62. public function __construct() {
  63. parent::__construct();
  64. }
  65.  
  66. public function check_user($username) {
  67. $this->db->from('users');
  68. $this->db->where('username',$username);
  69. $query = $this->db->get();
  70. $row = $query->row();
  71.  
  72. if(isset($row)){
  73. return true;
  74. }
  75. return false;
  76. }
  77.  
  78. public function get_password($username){
  79. $this->db->from('users');
  80. $this->db->where('username',$username);
  81. $query = $this->db->get();
  82.  
  83. $row = $query->row();
  84. return $row->password;
  85. }
  86.  
  87. public function get_user_data($username) {
  88. $this->db->from('users');
  89. $this->db->where('username',$username);
  90. $query = $this->db->get();
  91. $row = $query->row();
  92.  
  93. $data = array(
  94. 'username' => $username,
  95. 'firstName' => $row->first_name,
  96. 'lastName' => $row->last_name,
  97. 'role' => $this->get_role($username),
  98. 'dept' => $this->get_user_dept($username),
  99. );
  100.  
  101. return $data;
  102. }
  103.  
  104. public function get_username($data) {
  105. $this->db->select('user_role.user_name');
  106. $this->db->from('user_role');
  107. $this->db->join('user_department', 'user_role.user_name = user_department.user_name');
  108. $this->db->where($data);
  109. $query = $this->db->get();
  110.  
  111. $row = $query->row();
  112.  
  113. return $row->user_name;
  114. }
  115.  
  116. public function get_role($username){
  117. $this->db->from('user_role AS A');
  118. $this->db->join('roles AS B','A.role_id = B.role_id');
  119. $this->db->where('user_name',$username);
  120. $this->db->select('A.role_id, role_name');
  121. $query = $this->db->get();
  122. $row = $query->row();
  123. return $row;
  124. }
  125.  
  126. public function get_user_dept($username){
  127. $this->db->from('user_department AS A');
  128. $this->db->join('departments AS B','A.department_id = B.department_id');
  129. $this->db->where('user_name',$username);
  130. $this->db->select('B.department_id, B.department_name');
  131. $query = $this->db->get();
  132. $row = $query->row();
  133.  
  134. return $row;
  135. }
  136.  
  137. public function get_user_email($username){
  138. $this->db->select('email');
  139. $this->db->from('users');
  140. $this->db->where('username',$username);
  141. $query = $this->db->get();
  142.  
  143. $email = $query->row()->email;
  144. return $email;
  145. }
  146.  
  147. public function get_user_first_name($username){
  148. $this->db->select('first_name');
  149. $this->db->from('users');
  150. $this->db->where('username',$username);
  151. $query = $this->db->get();
  152.  
  153. $firstName = $query->row()->first_name;
  154. return $firstName;
  155. }
  156.  
  157. public function add_password_reset($username,$token){
  158. $data = array(
  159. 'username' => $username,
  160. 'token' => $token
  161. );
  162. $this->db->insert('password_resets',$data);
  163. }
  164.  
  165. public function get_info_from_reset_token($token){
  166. $this->db->from('password_resets');
  167. $this->db->where('token',$token);
  168. $query = $this->db->get();
  169.  
  170. $row = $query->row();
  171. return $row;
  172. }
  173.  
  174. public function in_reset_password($username){
  175. $this->db->from('password_resets');
  176. $this->db->where('username',$username);
  177. $query = $this->db->get();
  178.  
  179. if($query->num_rows()==0){
  180. return false;
  181. }
  182. return true;
  183. }
  184.  
  185. public function update_password($password,$username){
  186. $user = $username;
  187. $this->db->where('username',$user);
  188. $this->db->update('users', array('password' => $password));
  189.  
  190. $this->db->delete('password_resets', array('username' => $user));
  191. }
  192. }
Add Comment
Please, Sign In to add comment