diff --git a/CodeIgniter-3.1.13/application/controllers/Utilisateur.php b/CodeIgniter-3.1.13/application/controllers/Utilisateur.php index a8a8a90..f8c58ca 100644 --- a/CodeIgniter-3.1.13/application/controllers/Utilisateur.php +++ b/CodeIgniter-3.1.13/application/controllers/Utilisateur.php @@ -17,7 +17,6 @@ class Utilisateur extends CI_Controller { $this->load->model('Utilisateur_model'); $this->load->helper('html'); } - public function inscription(){ // Définir les règles de validation @@ -185,18 +184,7 @@ class Utilisateur extends CI_Controller { redirect('/'); } } - - public function supprimer_avis($avis_id) { - if ($this->Utilisateur_model->supprimer_avis($avis_id)) { - $this->session->set_flashdata('success', 'Avis supprimé avec succès.'); - } else { - $this->session->set_flashdata('error', 'Une erreur est survenue lors de la suppression de l\'avis.'); - } - - redirect('/'); - } - public function connexion(){ // Définir les règles de validation $this->form_validation->set_rules('email', 'Email', 'required|valid_email'); @@ -248,27 +236,29 @@ class Utilisateur extends CI_Controller { redirect('utilisateur/connexion'); } - public function dashboard(){ + public function dashboard() { if(!$this->session->userdata('user_id')){ redirect('utilisateur/connexion'); } - // Fetch les informations des utilisateurs $user_id = $this->session->userdata('user_id'); $data['user'] = $this->Utilisateur_model->get_user_by_id($user_id); - // Charger les vues + $data['avis'] = $this->Utilisateur_model->get_avis_by_user($user_id); + $this->load->view('layout/header_dark'); $this->load->view('dashboard', $data); $this->load->view('layout/footer_dark'); } + + + public function modifier(){ if(!$this->session->userdata('user_id')){ redirect('utilisateur/connexion'); } - // Definition des règles $this->form_validation->set_rules('email', 'Email', 'required|valid_email'); $this->form_validation->set_rules('nom', 'Nom', 'required'); $this->form_validation->set_rules('prenom', 'Prénom', 'required'); @@ -289,10 +279,73 @@ class Utilisateur extends CI_Controller { $data['error'] = 'Une erreur est survenue. Veuillez réessayer.'; } + // Récupérer à nouveau les données d'avis pour cet utilisateur + $data['user'] = $this->Utilisateur_model->get_user_by_id($user_id); + $data['avis'] = $this->Utilisateur_model->get_avis_by_user($user_id); + + $this->load->view('layout/header_dark'); + $this->load->view('dashboard', $data); + $this->load->view('layout/footer_dark'); + } + } + + public function modifier_mot_de_passe() { + if (!$this->session->userdata('user_id')) { + redirect('utilisateur/connexion'); + } + + $this->form_validation->set_rules('ancien_password', 'Ancien mot de passe', 'required'); + $this->form_validation->set_rules('nouveau_password', 'Nouveau mot de passe', 'required|min_length[8]'); + $this->form_validation->set_rules('confirmer_password', 'Confirmer le nouveau mot de passe', 'required|matches[nouveau_password]'); + + if ($this->form_validation->run() == FALSE) { + $this->dashboard(); + } else { + $user_id = $this->session->userdata('user_id'); + $user = $this->Utilisateur_model->get_user_by_id($user_id); + + if (password_verify($this->input->post('ancien_password'), $user->password)) { + $data = array( + 'password' => password_hash($this->input->post('nouveau_password'), PASSWORD_DEFAULT) + ); + + if ($this->Utilisateur_model->update_user($user_id, $data)) { + $data['success'] = 'Mot de passe mis à jour avec succès.'; + } else { + $data['error'] = 'Une erreur est survenue. Veuillez réessayer.'; + } + } else { + $data['error'] = 'L\'ancien mot de passe est incorrect.'; + } + $data['user'] = $this->Utilisateur_model->get_user_by_id($user_id); $this->load->view('layout/header_dark'); $this->load->view('dashboard', $data); $this->load->view('layout/footer_dark'); } } + + // Suppression d'avis + public function supprimer_avis_dashboard($id) { + if (!$this->session->userdata('user_id')) { + redirect('utilisateur/connexion'); + } + + $this->load->model('Utilisateur_model'); + $this->Utilisateur_model->supprimer_avis($id); + + redirect('utilisateur/dashboard'); + } + + public function supprimer_avis_accueil($id) { + if (!$this->session->userdata('user_id')) { + redirect('utilisateur/connexion'); + } + + $this->load->model('Utilisateur_model'); + $this->Utilisateur_model->supprimer_avis($id); + + redirect('/'); + } + } diff --git a/CodeIgniter-3.1.13/application/models/Utilisateur_model.php b/CodeIgniter-3.1.13/application/models/Utilisateur_model.php index 2555843..c1c7332 100644 --- a/CodeIgniter-3.1.13/application/models/Utilisateur_model.php +++ b/CodeIgniter-3.1.13/application/models/Utilisateur_model.php @@ -22,11 +22,11 @@ class Utilisateur_model extends CI_Model { return $query->row(); } - public function update_user($id, $data){ - $this->db->where('id', $id); + public function update_user($user_id, $data) { + $this->db->where('id', $user_id); return $this->db->update('utilisateur', $data); } - + public function insert_avis($data) { return $this->db->insert('avis', $data); @@ -42,6 +42,12 @@ class Utilisateur_model extends CI_Model { return $query->result(); } + public function get_avis_by_user($user_id) { + $this->db->where('utilisateur_id', $user_id); + $query = $this->db->get('avis'); + return $query->result(); + } + public function get_avis($utilisateur_id) { $this->db->select('*'); $this->db->from('avis'); @@ -52,7 +58,7 @@ class Utilisateur_model extends CI_Model { public function supprimer_avis($avis_id) { return $this->db->delete('avis', array('id' => $avis_id)); - } + } } ?> diff --git a/CodeIgniter-3.1.13/application/views/accueil.php b/CodeIgniter-3.1.13/application/views/accueil.php index bab810b..76e0ca4 100644 --- a/CodeIgniter-3.1.13/application/views/accueil.php +++ b/CodeIgniter-3.1.13/application/views/accueil.php @@ -46,7 +46,7 @@ session->userdata('user_id') && $this->session->userdata('user_id') == $a->utilisateur_id): ?> - Supprimer + Supprimer diff --git a/CodeIgniter-3.1.13/application/views/dashboard.php b/CodeIgniter-3.1.13/application/views/dashboard.php index 8e06caf..b0350c7 100644 --- a/CodeIgniter-3.1.13/application/views/dashboard.php +++ b/CodeIgniter-3.1.13/application/views/dashboard.php @@ -4,7 +4,7 @@
commentaire; ?> - notation; ?>/5
+ +Vous n'avez écrit aucun avis.
+