From e1a828346aaffe9744cbdeddf879bcca7d984a28 Mon Sep 17 00:00:00 2001 From: bruneau2017 <valentin.bruneau@ensiie.fr> Date: Sun, 16 Dec 2018 23:21:04 +0100 Subject: [PATCH] Modif de la page compte utilisateur --- src/WebApp/application/controllers/User.php | 117 ++++++++++++------ src/WebApp/application/views/compte.php | 15 ++- .../application/views/compte_success.php | 4 +- .../application/views/inscription_success.php | 2 +- 4 files changed, 91 insertions(+), 47 deletions(-) diff --git a/src/WebApp/application/controllers/User.php b/src/WebApp/application/controllers/User.php index b5cb6a0..a1c9e19 100644 --- a/src/WebApp/application/controllers/User.php +++ b/src/WebApp/application/controllers/User.php @@ -1,15 +1,17 @@ <?php defined('BASEPATH') OR exit('No direct script access allowed'); -class User extends CI_Controller { +class User extends CI_Controller +{ public function inscription() { $this->load->view('inscription'); } - public function inscription_success(){ - if(isset($_POST['suscribe'])) { + public function inscription_success() + { + if (isset($_POST['suscribe'])) { $this->load->database(); @@ -20,35 +22,36 @@ class User extends CI_Controller { $this->form_validation->set_rules('password', 'Mot de passe', 'required|min_length[7]'); - $this->form_validation->set_rules('password_confirm', 'Confirmation du mot de passe', 'required|matches[password]' ); + $this->form_validation->set_rules('password_confirm', 'Confirmation du mot de passe', 'required|matches[password]'); if ($this->form_validation->run() == TRUE) { - $mdp_hash = hash("sha1", $_POST['password']); + $mdp_hash = hash("sha1", $_POST['password']); - $data = array( - 'mail' => $_POST['mail'], - 'password' => $mdp_hash, - ); + $data = array( + 'mail' => $_POST['mail'], + 'password' => $mdp_hash, + ); - $this->db->insert('utilisateur', $data); + $this->db->insert('utilisateur', $data); - $this->load->view('inscription_success'); + $this->load->view('inscription_success'); - } - else { + } else { $this->load->view('inscription'); } } } - public function connexion(){ + public function connexion() + { $this->load->view('connexion'); } - public function connexion_success(){ - if(isset($_POST['login'])) { + public function connexion_success() + { + if (isset($_POST['login'])) { $this->load->database(); @@ -59,44 +62,46 @@ class User extends CI_Controller { $this->form_validation->set_rules('password_c', 'Mot de passe', 'callback_verif_user'); if ($this->form_validation->run() == TRUE) { - $_SESSION['logged_in']=TRUE; - $_SESSION['username']=$_POST['email']; + $_SESSION['logged_in'] = TRUE; + $_SESSION['username'] = $_POST['email']; $this->load->view('connexion_success'); - } - else { + } else { $this->load->view('connexion'); } } } - public function verif_user(){ + public function verif_user() + { $this->db->select('*'); $this->db->from('utilisateur'); - $this->db->where(array('mail' => $_POST['email'] , 'password' => hash("sha1", $_POST['password_c']) )); - $query=$this->db->get(); + $this->db->where(array('mail' => $_POST['email'], 'password' => hash("sha1", $_POST['password_c']))); + $query = $this->db->get(); - $user=$query->row(); - if($user!=NULL) { + $user = $query->row(); + if ($user != NULL) { return TRUE; - } - else{ + } else { $this->form_validation->set_message('verif_user', 'Aucun compte ne correspond à ces identifiants'); return FALSE; } } - public function deconnexion(){ + public function deconnexion() + { $this->load->library('session'); $this->load->view('deconnexion'); $this->session->sess_destroy(); } - public function compte(){ + public function compte() + { $this->load->view('compte'); } - public function compte_success(){ - if(isset($_POST['edition'])) { + public function compte_success() + { + if (isset($_POST['edition'])) { $this->load->database(); @@ -104,31 +109,61 @@ class User extends CI_Controller { $this->form_validation->set_error_delimiters('<div class="error">', '</div>'); - if($_POST['email_edit']!=$_SESSION['username']) { + if ($_POST['email_edit'] != $_SESSION['username']) { $this->form_validation->set_rules('mail_edit', 'Mail', 'valid_email|is_unique[utilisateur.mail]'); } + $this->form_validation->set_rules('old_password', 'Ancien mot de passe', 'callback_verif_oldpassword'); + $this->form_validation->set_rules('password_edit', 'Mot de passe', 'min_length[7]'); - $this->form_validation->set_rules('password_c_edit', 'Confirmation du mot de passe', 'matches[password_edit]' ); + $this->form_validation->set_rules('password_c_edit', 'Confirmation du mot de passe', 'matches[password_edit]'); if ($this->form_validation->run() == TRUE) { - $this->db->update('utilisateur'); - $this->db->set('mail',$_POST['email_edit']); - $this->db->where(array('mail' => $_SESSION['username'])); - - if (isset($_POST['password_edit'])) { + if ($_POST['password_edit'] != NULL) { $mdp_hash = hash("sha1", $_POST['password_edit']); - $this->db->update('utilisateur'); - $this->db->set('password',$mdp_hash); + + $this->db->set('password', $mdp_hash); $this->db->where(array('mail' => $_POST['email_edit'])); + $this->db->update('utilisateur'); + } + + + if ($_POST['email_edit'] != $_SESSION['username']) { + $this->db->set('mail', $_POST['email_edit']); + $this->db->where(array('mail' => $_SESSION['username'])); + $this->db->update('utilisateur'); + + $this->load->library('session'); + $this->session->sess_destroy(); } + + $this->load->view('compte_success'); + } else { + $this->load->view('compte'); + } + } + } + + public function verif_oldpassword() + { + if ($_POST['old_password'] != NULL) { + $this->db->select('password'); + $this->db->from('utilisateur'); + $this->db->where(array('mail' => $_SESSION['username'])); + $query = $this->db->get(); + $password = $query->row(); + + if ($password == hash("sha1", $_POST['old_password'])) { + return TRUE; } else { - $this->load->view('compte'); + $this->form_validation->set_message('verif_oldpassword', 'Ancien mot de passe invalide'); + return FALSE; } } + return TRUE; } } \ No newline at end of file diff --git a/src/WebApp/application/views/compte.php b/src/WebApp/application/views/compte.php index b31bb21..f2317df 100644 --- a/src/WebApp/application/views/compte.php +++ b/src/WebApp/application/views/compte.php @@ -47,8 +47,11 @@ defined('BASEPATH') OR exit('No direct script access allowed'); <header class="masthead"> <div class="container d-flex h-100 align-items-center"> <div class="mx-auto text-center"> - <h1 class="mx-auto my-0 text-uppercase">Vos informations : </h1> - <br><br><br> + <br><br> + <h1 class="mx-auto my-0 text-uppercase">Votre compte : </h1> + <br><br> + + <h2 class="mx-auto my-0 text-uppercase text-white">Modifier vos identifiants : </h2><br> <form action="compte_success" method="POST"> <div class="form-group"> @@ -56,6 +59,12 @@ defined('BASEPATH') OR exit('No direct script access allowed'); <?php echo form_error("email_edit");?> </div> <br> + <div class="form-group"> + <input class="form-control" name="old_password" id="old_password" type="password" placeholder="Entrez votre ancien mot de passe + ( Non requis si vous souhaitez modifier uniquement votre email ) "> + <?php echo form_error("old_password");?> + </div> + <br> <div class="form-group"> <input class="form-control" name="password_edit" id="password_edit" type="password" placeholder="Entrez votre nouveau mot de passe ( Non requis si vous souhaitez modifier uniquement votre email ) "> @@ -68,7 +77,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); </div> <br> <div> - <button class="btn btn-primary mx-auto" name="edition">Modifier vos identifiants</button> + <button class="btn btn-primary mx-auto" name="edition">Enregistrer</button> </div> </form> </div> diff --git a/src/WebApp/application/views/compte_success.php b/src/WebApp/application/views/compte_success.php index ba9f975..336dab3 100644 --- a/src/WebApp/application/views/compte_success.php +++ b/src/WebApp/application/views/compte_success.php @@ -45,9 +45,9 @@ defined('BASEPATH') OR exit('No direct script access allowed'); <!-- Header --> <header class="masthead"> - <div class="container d-flex h-100 align-items-center"> + <div class="container d-flex align-items-center"> <div class="mx-auto text-center"> - <h1 class="mx-0">Les modifications ont été enregistrées!</h1> + <h1> Modifications enregistrées! Déconnexion automatique si vous avez modifier votre adresse mail.</h1> </div> </div> </header> diff --git a/src/WebApp/application/views/inscription_success.php b/src/WebApp/application/views/inscription_success.php index 7d59dbf..3b443e9 100644 --- a/src/WebApp/application/views/inscription_success.php +++ b/src/WebApp/application/views/inscription_success.php @@ -31,7 +31,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); <header class="masthead"> <div class="container d-flex h-100 align-items-center"> <div class="mx-auto text-center"> - <h1 class="mx-auto my-0 text-uppercase">Your are registered!</h1> + <h1 class="mx-auto my-0 text-uppercase">Vous êtes inscrit!</h1> </div> </div> </header> -- GitLab