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( [ '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 = ['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( ['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( ['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 = ['errortekst' => '', 'status' => FALSE]; if ( ! $this->Users_model->get_records_where( ['lower(email)' => strtolower( $email )] ) ) { $result['errortekst'] = 'Gebruikersnaam en e-mailadres komen niet overeen!'; } elseif ( ! $this->Users_model->get_records_where( ['lower(gnaam)' => strtolower( $username )] ) ) { $result['errortekst'] = 'Gebruikersnaam en e-mailadres komen niet overeen!'; } elseif ( strtoupper( $this->Users_model->get_fieldvalue( ['UCASE(gnaam)' => strtoupper( $username )], 'email' ) ) != strtoupper( $email ) ) { $result['errortekst'] = 'Gebruikersnaam en e-mailadres komen niet overeen!'; } else { $userid = $this->Users_model->get_fieldvalue( ['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( ['wachtwoord' => md5( $salt . $password )], $userid ); $data = ['username' => $username, 'password' => $password, 'fullname' => $this->Users_model->get_fullname( $userid )]; $html = $this->load->view( 'emails/newpassword_mail', $data, TRUE ); $mg = Mailgun::create( '8d6b5f67d2eb98a75211e2557b00fbfb-e31dc3cc-046e9e0d' ); // For US servers $mg->messages()->send( 'mg.monpas.nl', [ 'from' => 'info@monpas.nl', 'to' => 't.weijmer@pensare.nl', 'subject' => 'Inloggegevens MonPas', 'html' => $html, 'inline' => [ [ 'filename' => 'monpasklein.png', 'filePath' => '@css/images/'] ] ] ); return; $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 ); } }