| 
									
										
										
										
											2020-03-17 18:17:35 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  |     defined('BASEPATH') OR exit('No direct script access allowed'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     class Users extends CI_Controller { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         public function __construct(){ | 
					
						
							|  |  |  |             parent::__construct(); | 
					
						
							|  |  |  |             $this->load->model('user_model'); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         public function index() | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if (!$this->session->userdata('token')) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 $this->session->set_flashdata('error', 'log in first'); | 
					
						
							|  |  |  |                 $data['alert'] = ''; | 
					
						
							|  |  |  |                 $this->load->view('login', $data); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 $hyper = "hyper"; | 
					
						
							|  |  |  |                 $super = "super"; | 
					
						
							|  |  |  |                 $admin = "admin"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 if ($this->session->userdata('category') == 0 or $this->session->userdata('category') == 1) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     $data['active'] = "dash"; | 
					
						
							|  |  |  |                     $data['firstname'] = $this->session->userdata('firstname'); | 
					
						
							|  |  |  |                     $data['lastname'] = $this->session->userdata('lastname'); | 
					
						
							|  |  |  |                     $data['email'] = $this->session->userdata('email'); | 
					
						
							|  |  |  |                     $this->load->view('header', $data); | 
					
						
							|  |  |  |                     $this->load->view('admin_dash'); | 
					
						
							|  |  |  |                     $this->load->view('footer'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 } else if ($this->session->userdata('category') == $hyper) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     $data['active'] = "dash"; | 
					
						
							|  |  |  |                     $data['token'] = $this->session->userdata('token'); | 
					
						
							|  |  |  |                     $data['email'] = $this->session->userdata('email'); | 
					
						
							|  |  |  |                     $data['firstname'] = $this->session->userdata('firstname'); | 
					
						
							|  |  |  |                     $data['lastname'] = $this->session->userdata('lastname'); | 
					
						
							|  |  |  |                     $data['member_code'] = $this->session->userdata('member_code'); | 
					
						
							|  |  |  |                     $data['phone'] = $this->session->userdata('phone'); | 
					
						
							|  |  |  |                     $data['adresse'] = $this->session->userdata('adresse'); | 
					
						
							|  |  |  |                     $data['category'] = $this->session->userdata('category'); | 
					
						
							|  |  |  |                     $data['network'] = $this->session->userdata('network'); | 
					
						
							|  |  |  |                     $data['network_id'] =  | 
					
						
							|  |  |  |                     $data['villes'] = $this->user_model->getVilleByUserGeo($data['network']); | 
					
						
							|  |  |  |                     $data['count_geo'] = $this->user_model->countUser("geolocated",$this->session->userdata('network')); | 
					
						
							|  |  |  |                     $data['count_sup'] = $this->user_model->countUser("super",$this->session->userdata('network')); | 
					
						
							|  |  |  |                     $this->load->view('header_hyp', $data); | 
					
						
							|  |  |  |                     $this->load->view('hyperviseur_dash'); | 
					
						
							|  |  |  |                     $this->load->view('footer'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 } else if ($this->session->userdata('category') == $super) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     $data['active'] = "dash"; | 
					
						
							|  |  |  |                     $this->load->view('header_sup', $data); | 
					
						
							|  |  |  |                     $this->load->view('superviseur_dash'); | 
					
						
							|  |  |  |                     $this->load->view('footer'); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         public function login() | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             $user_login = array( | 
					
						
							|  |  |  |                 'user_email' => $this->input->post('user_mail'), | 
					
						
							|  |  |  |                 'user_password' => $this->input->post('user_password'), | 
					
						
							|  |  |  |                 'user_role' => $this->input->post('user_role') | 
					
						
							|  |  |  |             ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $data = $this->user_model->login_user($user_login['user_email'], $user_login['user_password'], $user_login['user_role']); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if ($data) { | 
					
						
							| 
									
										
										
										
											2020-05-06 23:36:01 +00:00
										 |  |  |             	$this->session->set_userdata('timezone' ,$this->input->post('timezone') ); | 
					
						
							|  |  |  | 				date_default_timezone_set ($this->session->userdata('timezone')); | 
					
						
							| 
									
										
										
										
											2020-03-17 18:17:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 $hyper = "hyper"; | 
					
						
							|  |  |  |                 $super = "super"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 $this->session->set_userdata('token', $data->token); | 
					
						
							|  |  |  |                 $this->session->set_userdata('email', $data->email); | 
					
						
							|  |  |  |                 $this->session->set_userdata('firstname', $data->firstname); | 
					
						
							|  |  |  |                 $this->session->set_userdata('lastname', $data->lastname); | 
					
						
							|  |  |  |                 $this->session->set_userdata('adresse', $data->adresse); | 
					
						
							| 
									
										
										
										
											2020-04-17 15:28:27 +00:00
										 |  |  | 				$this->session->set_userdata('agent_id', $data->agent_id); | 
					
						
							| 
									
										
										
										
											2020-03-17 18:17:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 if($user_login['user_role']==1){ | 
					
						
							|  |  |  |                     $this->session->set_userdata('country', $data->country); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     $pays = $this->user_model->getAllCountries(); | 
					
						
							|  |  |  |                     $this->session->set_userdata('current_pays', $pays->first_row()->name); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     $hyper = $this->user_model->getAllHyper($this->session->userdata('current_pays')); | 
					
						
							|  |  |  |                     $this->session->set_userdata('current_hyper', $hyper->first_row()->code_membre); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     $ville = $this->user_model->getVilleNetworkByHyper($this->session->userdata('current_hyper')); | 
					
						
							|  |  |  |                     $this->session->set_userdata('current_ville', $ville->first_row()->ville); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     $this->session->set_userdata('category', $data->category); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     redirect('index.php/Admin_dash/filter'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 }else{ | 
					
						
							|  |  |  |                     $this->session->set_userdata('member_code', $data->code_membre); | 
					
						
							|  |  |  |                     $this->session->set_userdata('longitude', $data->longitude); | 
					
						
							|  |  |  |                     $this->session->set_userdata('latitude', $data->latitude); | 
					
						
							|  |  |  |                     $this->session->set_userdata('phone', $data->phone); | 
					
						
							|  |  |  |                     $this->session->set_userdata('category', $data->category); | 
					
						
							|  |  |  |                     $this->session->set_userdata('network', $data->network); | 
					
						
							|  |  |  |                     $this->session->set_userdata('network_id', $data->network_id); | 
					
						
							|  |  |  |                     $this->session->set_userdata('current_pays', $data->country); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     if($data->category == $hyper) { | 
					
						
							|  |  |  |                         redirect('index.php/Hyperviseur_dash'); | 
					
						
							|  |  |  |                     } else if ($data->category == $super) { | 
					
						
							|  |  |  |                         $this->session->set_userdata('code_parrain', $data->code_parrain); | 
					
						
							|  |  |  |                         redirect('index.php/Superviseur_dash'); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 $this->session->set_flashdata('error_msg', 'Error occured,Try again.'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 $data['alert'] = "ok"; | 
					
						
							|  |  |  |                 $data['message'] = "L'identifiant " . $user_login['user_email'] . " ou le mot de passe sont incorrectes ou vérifiez votre grade!"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 $this->load->view('login', $data); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         public function create_auth(){ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $email = $this->input->post('user_email'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if($email!=null){ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 $this->load->model('Authentification_url_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 if($this->User_model->email_check($this->input->post('user_email'))) | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     $id = $this->session->userdata('id'); | 
					
						
							|  |  |  |                     $tktToken = $this->generateToken($id); | 
					
						
							|  |  |  |                     $current_date = date('Y-m-d H:i:s'); | 
					
						
							|  |  |  |                     $expires = strtotime('+3 days', strtotime($current_date)); | 
					
						
							|  |  |  |                     $end_date = date('Y-m-d H:i:s', $expires); | 
					
						
							|  |  |  |                     $code_sms = str_pad(mt_rand(1,999999),6,'0',STR_PAD_LEFT); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     $auth = array( | 
					
						
							|  |  |  |                         'email' => $this->input->post('user_email'), | 
					
						
							|  |  |  |                         'contact' => $this->input->post('user_mobile'), | 
					
						
							|  |  |  |                         'token' => $tktToken, | 
					
						
							|  |  |  |                         'code_sms' => $code_sms, | 
					
						
							|  |  |  |                         'create_at' => $current_date, | 
					
						
							|  |  |  |                         'expire_at' => $end_date, | 
					
						
							|  |  |  |                         'id_creator' => $id | 
					
						
							|  |  |  |                     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     $userId = $this->Authentification_url_model->save_auth($auth); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     $this->sendmail($userId,$this->input->post('email'),$this->input->post('name'),$tktToken,'register','Verify your email'); | 
					
						
							|  |  |  |                     redirect('user/login_view', 'refresh'); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 else{ | 
					
						
							|  |  |  |                     $this->session->set_flashdata('msg', 'This email is already used, please try again with different account ...'); | 
					
						
							|  |  |  |                     redirect('users/register', 'refresh'); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         public function register(){ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $this->load->model('Authentification_url_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $current_date = date('Y-m-d H:i:s'); | 
					
						
							|  |  |  |             $token = null; | 
					
						
							|  |  |  |             $expiration_date = $this->Authentification_url_model->getExpireDate($token); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if($expiration_date!=null){ | 
					
						
							|  |  |  |                 if($current_date < $expiration_date){ | 
					
						
							|  |  |  |                     //registration logic
 | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                 else{ | 
					
						
							|  |  |  |                     $this->session->set_flashdata('error_msg', 'Error occured,Try again.'); | 
					
						
							|  |  |  |                     //$this->load->view("login.php");
 | 
					
						
							|  |  |  |                     $data['alert'] = "ok"; | 
					
						
							|  |  |  |                     $data['message'] = "Sorry your authentification'url has already expired"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     //redirect('Login', $data);
 | 
					
						
							|  |  |  |                     $this->load->view('register', $data); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             else{ | 
					
						
							|  |  |  |                 $this->session->set_flashdata('error_msg', 'Error occured,Try again.'); | 
					
						
							|  |  |  |                 $data['alert'] = "ok"; | 
					
						
							|  |  |  |                 $data['message'] = "your authentification url is not recognized"; | 
					
						
							|  |  |  |                 $this->load->view('register', $data); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         public function generateToken($id){ | 
					
						
							|  |  |  |             $static_str='IL'; | 
					
						
							|  |  |  |             $currenttimeseconds = date("mdY_His"); | 
					
						
							|  |  |  |             $token_id=$static_str.$id.$currenttimeseconds; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             return md5($token_id); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         public function logout() | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             $this->session->sess_destroy(); | 
					
						
							|  |  |  |             $data['alert'] = 'You have been disconnected'; | 
					
						
							| 
									
										
										
										
											2020-05-02 10:49:34 +00:00
										 |  |  | 			$this->session->set_flashdata('error','You have been disconnected' ); | 
					
						
							|  |  |  |             redirect('index.php/Users', $data); | 
					
						
							|  |  |  | //            $this->load->view('login', $data);
 | 
					
						
							| 
									
										
										
										
											2020-03-17 18:17:35 +00:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         public function forgot_password(){ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $data['message'] = 'Les instructions vous seront envoyées par email.'; | 
					
						
							|  |  |  |             $this->load->view('admin_forgot_password',$data); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         public function sendEmailInstructions(){ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             if(isset($_POST)) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 $email = $this->input->post('email'); | 
					
						
							|  |  |  |                 $emailExist = $this->user_model->isEmailExist($email); | 
					
						
							|  |  |  |                 if($emailExist==true){ | 
					
						
							|  |  |  |                     $names = $this->db->query("SELECT firstname,lastname FROM admin WHERE email='".$email."'"); | 
					
						
							|  |  |  |                     $firstname = $names->first_row()->firstname; | 
					
						
							|  |  |  |                     $lastname = $names->first_row()->lastname; | 
					
						
							|  |  |  |                     $token_query = $this->db->query("SELECT token FROM admin WHERE email='".$email."'"); | 
					
						
							|  |  |  |                     $token = $token_query->first_row()->token; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     $link = "https://ilink-app.com/backofficebeta/index.php/Admin_password/?token=".$token; | 
					
						
							|  |  |  |                     $this->load->library('email'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     $this->email->from('noreply@ilink-app.com', 'iLink World'); | 
					
						
							|  |  |  |                     $this->email->to($email); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     $this->email->subject("Instruction pour modification de mot de passe"); | 
					
						
							|  |  |  |                     $this->email->message($firstname.' '.$lastname.', veuillez suivre ce lien pour créer un nouveau mot de passe. '.$link); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     $this->email->send(); | 
					
						
							|  |  |  |                 }else{ | 
					
						
							|  |  |  |                     $data['message'] = 'Veuillez saisir votre email.'; | 
					
						
							|  |  |  |                     $this->load->view('admin_forgot_password',$data); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             }else{ | 
					
						
							|  |  |  |                 $data['message'] = 'Cet email ne correspond à aucun utilisateur.'; | 
					
						
							|  |  |  |                 $this->load->view('admin_forgot_password',$data); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         public function redirect_tutorial(){ | 
					
						
							|  |  |  |             if(isset($_POST)) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 $profil = $this->input->post('profil'); | 
					
						
							|  |  |  |                 switch ($profil) { | 
					
						
							|  |  |  |                     case 1: | 
					
						
							|  |  |  |                         $data['profil'] = 1; | 
					
						
							|  |  |  |                         $this->load->view('flipbook',$data); | 
					
						
							|  |  |  |                         break; | 
					
						
							|  |  |  |                     case 2: | 
					
						
							|  |  |  |                         $data['profil'] = 2; | 
					
						
							|  |  |  |                         $this->load->view('select_tuto',$data); | 
					
						
							|  |  |  |                         break; | 
					
						
							|  |  |  |                     case 3: | 
					
						
							|  |  |  |                         $data['profil'] = 3; | 
					
						
							|  |  |  |                         $this->load->view('select_tuto',$data); | 
					
						
							|  |  |  |                         break; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | ?>
 |