1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
<?php
// application/controllers/Users.php
defined('BASEPATH') OR exit('No direct script access allowed');
class Users extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('user_model');
$this->load->library('form_validation');
}
public function index() {
$data['users'] = $this->user_model->get_all_users();
$data['title'] = 'Users List';
$this->load->view('templates/header', $data);
$this->load->view('users/index', $data);
$this->load->view('templates/footer');
}
public function create() {
$this->form_validation->set_rules('name', 'Name', 'required');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email|is_unique[users.email]');
$this->form_validation->set_rules('password', 'Password', 'required|min_length[6]');
if ($this->form_validation->run() === FALSE) {
$data['title'] = 'Create User';
$this->load->view('templates/header', $data);
$this->load->view('users/create');
$this->load->view('templates/footer');
} else {
$data = array(
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'password' => password_hash($this->input->post('password'), PASSWORD_DEFAULT),
'created_at' => date('Y-m-d H:i:s')
);
$this->user_model->create_user($data);
$this->session->set_flashdata('success', 'User created successfully');
redirect('users');
}
}
public function edit($id) {
$data['user'] = $this->user_model->get_user_by_id($id);
if (empty($data['user'])) {
show_404();
}
$this->form_validation->set_rules('name', 'Name', 'required');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
if ($this->form_validation->run() === FALSE) {
$data['title'] = 'Edit User';
$this->load->view('templates/header', $data);
$this->load->view('users/edit', $data);
$this->load->view('templates/footer');
} else {
$update_data = array(
'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'updated_at' => date('Y-m-d H:i:s')
);
$this->user_model->update_user($id, $update_data);
$this->session->set_flashdata('success', 'User updated successfully');
redirect('users');
}
}
public function delete($id) {
$user = $this->user_model->get_user_by_id($id);
if (empty($user)) {
show_404();
}
$this->user_model->delete_user($id);
$this->session->set_flashdata('success', 'User deleted successfully');
redirect('users');
}
}
|