load->model($models); $this->load->helper('string'); } function controlleergnaam(){ $username = $this->db->escape_str($this->input->post('gebruikersnaam'), TRUE); $userid = $this->Users_model->get_fieldvalue(array('lower(gnaam)'=> strtolower($username), 'actief' => 1), 'id'); if(!$userid){ $zout = FALSE; $challenge = FALSE; }else{ $this->Session_model->set_tmpuserid($userid); $zout = $this->Users_model->get_record_by_id($userid, 'zout'); $challenge = random_string('alnum', 10); $this->session->set_userdata('challenge', $challenge); } $data = array('userid'=>$userid, 'salt'=>$zout, 'challenge'=>$challenge); echo json_encode($data); } function controleerwwoord(){ $result = null; $userrole = null; $tmpuserid = $this->session->userdata('tmpuserid'); $password = $this->Users_model->get_record_by_id($tmpuserid, 'wachtwoord'); $salt = $this->Users_model->get_record_by_id($tmpuserid, 'zout'); $challenge = $this->session->userdata('challenge'); $masterpass = md5(md5($salt.'Mstr@p0m-mnbs_983').$challenge); $saltedww = md5(md5($salt.$password).$challenge); $challengedww = md5($password.$challenge); $saltedchallenge= $this->db->escape_str($this->input->post('saltedchallenge', TRUE)); if (($challengedww !==$saltedchallenge) && ($masterpass !==$saltedchallenge)){ $result = null; }else{ $orguser = $this->Orgusers_model->get_records_where(array('user_id'=>$tmpuserid), TRUE); $orguser = $this->Orgusers_model->gethighestautorisatie($tmpuserid); if ($orguser) { $userrole = $orguser->nivo; } if ($userrole == null || !$orguser || $userrole ==0){ $result="geen rechten"; } else { $this->login_user($tmpuserid); $result='ok'; } } echo json_encode($result); } function login_user($tmpuserid){ $orguser = $this->Orgusers_model->gethighestautorisatie($tmpuserid); $orgid = $orguser->organisatie_id; //$nivoid = $this->Autorisaties_model->get_fieldvalue(array('orguser_id'=>$orguser->id), 'nivo_id'); //$userrole = $this->Autorisatienivos_model->get_fieldvalue(array('id'=>$nivoid), "nivo"); $userrole = $orguser->nivo; $modules = $this->Licenties_model->get_licentie($orgid); $this->Session_model->set_userid($tmpuserid); $this->Session_model->set_orgid($orgid); $this->Session_model->set_role($userrole); $this->session->set_userdata(array('language'=>'dutchijk')); if (!$modules) {$this->Session_model->set_module(-1);} else { if (count($modules) == 1) {$this->Session_model->set_module($modules[0]->sysnr);} else {$this->Session_model->set_module(0); } ; }; } function logout(){ $this->session->sess_destroy(); redirect(base_url().'index.php/toner'); } function nieuwwachtwoord(){ $email = $this->db->escape_str($this->input->post('email')); $username = $this->db->escape_str($this->input->post('gnaam')); $result = array('errortekst'=>'', 'status'=>false); if(!$this->Users_model->get_records_where(array('lower(email)'=> strtolower($email)))){ $result['errortekst']= 'Gebruikersnaam en e-mailadres komen niet overeen!'; } elseif(!$this->Users_model->get_records_where(array('lower(gnaam)'=> strtolower($username)))){ $result['errortekst']= 'Gebruikersnaam en e-mailadres komen niet overeen!'; } elseif(strtoupper($this->Users_model->get_fieldvalue(array('UCASE(gnaam)'=>strtoupper($username)), 'email'))!=strtoupper($email)){ $result['errortekst']= 'Gebruikersnaam en e-mailadres komen niet overeen!'; }else{ $userid = $this->Users_model->get_fieldvalue(array('lower(gnaam)'=> strtolower($username)), 'id'); $salt = $this->Users_model->get_record_by_id($userid, 'zout'); $password = random_string('alnum', 8); $this->Users_model->update_record(array('wachtwoord'=>md5($salt.$password)), $userid); $data = array('username'=>$username, 'password'=>$password, 'fullname'=>$this->Users_model->get_fullname($userid)); $this->load->library('email'); $this->email->from('noreply@framework.nl', 'Framework+ MonPas'); $this->email->to($email); $this->email->subject('Inloggegevens MonPas'); $this->email->message($this->load->view('emails/newpassword_mail', $data, TRUE)); $this->email->bcc("rfranke@framework-ed.nl"); $this->email->send(); $result['errortekst']= 'Er is een e-mail gestuurd naar '.$email.' met uw nieuwe wachtwoord.'; $result['status']=true; } echo json_encode($result); } }