diff --git a/.gitignore b/.gitignore index 69db029..d138466 100644 --- a/.gitignore +++ b/.gitignore @@ -81,3 +81,9 @@ Thumbs.db *.mov *.wmv + +docs/ + +public/tmp/ + +documents/compactsops/ diff --git a/application/config/email.php b/application/config/email.php index 2426e40..22d3efe 100644 --- a/application/config/email.php +++ b/application/config/email.php @@ -6,13 +6,22 @@ * Time: 10:46 */ +// +//$config['smtp_host']=$_ENV['MAIL']['HOST']; +//$config['smtp_port']=$_ENV['MAIL']['SMTP_PORT']; +//$config['smtp_timeout']='30'; +//$config['smtp_user']=$_ENV['MAIL']['SMTP_USER']; +//$config['smtp_pass']=$_ENV['MAIL']['SMTP_PASS']; +//$config['mailtype']='html'; +//$config['charset']='utf-8'; +//$config['newline']="\r\n"; -$config['smtp_host']=$_ENV['MAIL']['HOST']; -$config['smtp_port']=$_ENV['MAIL']['SMTP_PORT']; -$config['smtp_timeout']='30'; -$config['smtp_user']=$_ENV['MAIL']['SMTP_USER']; -$config['smtp_pass']=$_ENV['MAIL']['SMTP_PASS']; -$config['mailtype']='html'; -$config['charset']='utf-8'; -$config['newline']="\r\n"; + + +$config['charset'] = 'iso-8859-1'; +$config['protocol'] = $_ENV['MAIL']['PROTOCOL']; +$config['smtp_host'] = $_ENV['MAIL']['HOST']; +$config['smtp_user'] = $_ENV['MAIL']['SMTP_USER']; +$config['smtp_pass'] = $_ENV['MAIL']['SMTP_PASS']; +$config['smtp_port'] = $_ENV['MAIL']['SMTP_PORT']; diff --git a/application/controllers/Login.php b/application/controllers/Login.php index 481389a..7db0594 100644 --- a/application/controllers/Login.php +++ b/application/controllers/Login.php @@ -1,128 +1,188 @@ load->model($models); - $this->load->helper('string'); + $models = [ + "shared/Users_model", + 'shared/Session_model', + 'shared/Orgusers_model', + "shared/Autorisaties_model", + "shared/Autorisatienivos_model", + "shared/Licenties_model"]; // 'Pages_model', + $this->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'); + 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); + if ( ! $userid ) + { + $zout = FALSE; + $challenge = FALSE; } - $data = array('userid'=>$userid, 'salt'=>$zout, 'challenge'=>$challenge); - echo json_encode($data); + 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)); + 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' ); - 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); + $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 ($orguser) { - $userrole = $orguser->nivo; + 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"; + + if ( $userrole == NULL || ! $orguser || $userrole == 0 ) + { + $result = "geen rechten"; } - else { - $this->login_user($tmpuserid); - $result='ok'; + else + { + $this->login_user( $tmpuserid ); + $result = 'ok'; } - } - echo json_encode($result); + } + 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 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(){ + 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); + redirect( base_url() . 'index.php/toner' ); } -} \ No newline at end of file + 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 ); + if( $_ENV['ENVIRONMENT'] == 'production') + { + //Deze code wordt alleen op produktie gebruikt en stuurt de mail + //naar Mailgun via een API (Codeigniter email library wordt niet gebruikt + $mg = Mailgun::create( $_ENV['MAIL']['APIKEY'] ); + $mg->messages()->send( $_ENV['MAIL']['DOMAIN'], [ + 'from' => 'info@monpas.nl', + 'to' => $email, + 'cc' => 'rfranke@framework-ed.nl', + 'subject' => 'Inloggegevens MonPas', + 'html' => $html, + 'inline' => [ + [ + 'filename' => 'monpasklein.png', + 'filePath' => FCPATH . 'css/images/monpasklein.png'] + ] + ] ); + }else{ + $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 ); + } + +} diff --git a/application/controllers/shared/Users.php b/application/controllers/shared/Users.php index b351f50..67c9254 100644 --- a/application/controllers/shared/Users.php +++ b/application/controllers/shared/Users.php @@ -1,5 +1,8 @@ Users_model->get_record_by_id($userid); $data = array('username'=>$user->gnaam, 'password'=>$ww, 'fullname'=>$this->Users_model->get_fullname($userid)); $org = $this->getBijlage($orgid); - $this->load->library('email'); - - $this->email->from('noreply@framework.nl', 'Framework+ MonPas'); - $this->email->to($user->email); - $this->email->subject('Inloggegevens MonPas'); - $this->email->message($this->load->view('emails/newuser_mail', $data, TRUE)); - $this->email->bcc("rfranke@framework-ed.nl"); - if ($org->randomname) - $this->email->attach('./../docs/'.$org->randomname,'attachment', $org->bijlagefile); - $this->email->send(); + + $html = $this->load->view('emails/newuser_mail', $data, TRUE); + + if( $_ENV['ENVIRONMENT'] == 'production') + { + //Deze code wordt alleen op produktie gebruikt en stuurt de mail + //naar Mailgun via een API (Codeigniter email library wordt niet gebruikt + $mg = Mailgun::create( $_ENV['MAIL']['APIKEY'] ); + + $mailData = [ + 'from' => 'info@monpas.nl', + 'to' => $user->email, + 'cc' => 'rfranke@framework-ed.nl', + 'subject' => 'Inloggegevens MonPas', + 'html' => $html, + 'inline' => [ + [ + 'filename' => 'monpasklein.png', + 'filePath' => FCPATH . 'css/images/monpasklein.png'] + ] + ]; + + if( $org->randomname ) $mailData['attachment'][0] = [ + 'filename' => $org->bijlagefile, + 'filePath' => MYROOTPATH. 'docs/'.$org->randomname ]; + + $mg->messages()->send( $_ENV['MAIL']['DOMAIN'], $mailData ); + }else{ + $this->load->library('email'); + + $this->email->from('noreply@framework.nl', 'Framework+ MonPas'); + $this->email->to($user->email); + $this->email->subject('Inloggegevens MonPas'); + $this->email->message($this->load->view('emails/newuser_mail', $data, TRUE)); + $this->email->bcc("rfranke@framework-ed.nl"); + if ($org->randomname) + $this->email->attach('./../docs/'.$org->randomname,'attachment', $org->bijlagefile); + $this->email->send(); + } } function updateuser2(){ @@ -288,14 +320,35 @@ class Users extends MY_Controller{ $this->Users_model->update_record(array('wachtwoord'=>$saltedww),$userid); $data = array('username'=>$user->gnaam, 'password'=>$ww, 'fullname'=>$this->Users_model->get_fullname($userid)); - $this->load->library('email'); - - $this->email->from('noreply@framework.nl', 'Framework+ MonPas'); - $this->email->to($user->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(); + $html = $this->load->view( 'emails/newpassword_mail', $data, TRUE ); + if( $_ENV['ENVIRONMENT'] == 'production') + { + //Deze code wordt alleen op produktie gebruikt en stuurt de mail + //naar Mailgun via een API (Codeigniter email library wordt niet gebruikt + $mg = Mailgun::create( $_ENV['MAIL']['APIKEY'] ); + $mg->messages()->send( $_ENV['MAIL']['DOMAIN'], [ + 'from' => 'info@monpas.nl', + 'to' => $user->email, + 'cc' => 'rfranke@framework-ed.nl', + 'subject' => 'Inloggegevens MonPas', + 'html' => $html, + 'inline' => [ + [ + 'filename' => 'monpasklein.png', + 'filePath' => FCPATH . 'css/images/monpasklein.png'] + ] + ] ); + }else + { + $this->load->library( 'email' ); + + $this->email->from( 'noreply@framework.nl', 'Framework+ MonPas' ); + $this->email->to( $user->email ); + $this->email->subject( 'Inloggegevens MonPas' ); + $this->email->message( $html ); + $this->email->bcc( "rfranke@framework-ed.nl" ); + $this->email->send(); + } echo json_encode(array('ok'=>$ok, 'errortekst'=>$errortekst)); } @@ -366,4 +419,4 @@ class Users extends MY_Controller{ $user=$this->Users_model->getorggebruikers($orgid, $userid); echo json_encode($user); } -} \ No newline at end of file +} diff --git a/application/views/emails/newpassword_mail.php b/application/views/emails/newpassword_mail.php index 1ecd257..301471a 100644 --- a/application/views/emails/newpassword_mail.php +++ b/application/views/emails/newpassword_mail.php @@ -10,7 +10,7 @@
-
+
Beste =$fullname?>, |