From 1f590a8aecff4a4a4d1e511b38f152be83a1efd7 Mon Sep 17 00:00:00 2001 From: Rogier Neeleman Date: Fri, 18 Mar 2016 23:01:31 +0100 Subject: [PATCH] Configuration basics and users manager added. --- application/controllers/config.php | 122 ++++++++++++++++++ .../migrations/20160311233300_add_config.php | 47 +++++++ application/models/Config_model.php | 50 +++++++ application/views/config_common.php | 2 + application/views/config_tabbar.php | 25 ++++ application/views/config_users.php | 51 ++++++++ application/views/config_users_add.php | 45 +++++++ application/views/header.php | 2 +- 8 files changed, 343 insertions(+), 1 deletion(-) create mode 100644 application/controllers/config.php create mode 100644 application/migrations/20160311233300_add_config.php create mode 100644 application/models/Config_model.php create mode 100644 application/views/config_common.php create mode 100644 application/views/config_tabbar.php create mode 100644 application/views/config_users.php create mode 100644 application/views/config_users_add.php diff --git a/application/controllers/config.php b/application/controllers/config.php new file mode 100644 index 0000000..d509285 --- /dev/null +++ b/application/controllers/config.php @@ -0,0 +1,122 @@ +session->userdata('validated')){ + redirect(base_url('/login')); + } + if (! ($this->session->admin == '1' OR $this->session->superadmin == '1')) { + redirect(base_url('/dashboard')); + } + } + + public function index() + { + $data['page'] = 'config'; + $data['tab'] = 'common'; + + // Header + $this->load->view('header', $data); + + // Tab bar + $this->load->view('config_tabbar', $data); + + // config page + $this->load->view('config_common', $data); + + // Footer + $this->load->view('footer'); + } + + public function users($action = NULL, $id = NULL) + { + $data['page'] = 'config'; + $data['tab'] = 'users'; + + // Load data + $this->load->model('Config_model'); + + // Check for post + if ($this->input->post('save')) { + $users = $this->Config_model->get_user_list(); + foreach ($users as $user) { + if ($this->input->post('admin'.$user['id']) == 1) { + $update[$user['id']]['admin'] = 1; + } else { + $update[$user['id']]['admin'] = 0; + } + if ($this->input->post('superadmin'.$user['id']) == 1) { + $update[$user['id']]['superadmin'] = 1; + } else { + $update[$user['id']]['superadmin'] = 0; + } + } + // Update user + $this->Config_model->update_user_rights($update); + $data['updatemsg'] = 'Rechten aangepast.'; + + } elseif ($this->input->post('saveuser')) { + if ($this->input->post('username')) { + $update['username'] = $this->input->post('username'); + } + if ($this->input->post('password')) { + $update['password'] = sha1($this->input->post('password')); + } + if ($this->input->post('admin') == 1) { + $update['admin'] = 1; + } else { + $update['admin'] = 0; + } + if ($this->input->post('superadmin') == 1) { + $update['superadmin'] = 1; + } else { + $update['superadmin'] = 0; + } + $update['regioid'] = $this->session->regio; + $this->Config_model->add_user($update); + $data['updatemsg'] = 'Gebruiker aangemaakt.'; + } + + // Get data + $data['users'] = $this->Config_model->get_user_list(); + + // Header + $this->load->view('header', $data); + + // Tab bar + $this->load->view('config_tabbar', $data); + + // If add user + if (isset($action)) { + if ($action == 'add') { + $this->load->view('config_users_add', $data); + } elseif ($action == 'remove') { + if (isset($id)) { + $this->Config_model->remove_user($id); + $data['users'] = $this->Config_model->get_user_list(); + $this->load->view('config_users', $data); + } + } else { + $this->load->view('config_users', $data); + } + } else { + // config page + $this->load->view('config_users', $data); + } + + //echo "
";
+		//print_r($update);
+		//echo "
"; + + // Footer + $this->load->view('footer'); + } +} \ No newline at end of file diff --git a/application/migrations/20160311233300_add_config.php b/application/migrations/20160311233300_add_config.php new file mode 100644 index 0000000..283552f --- /dev/null +++ b/application/migrations/20160311233300_add_config.php @@ -0,0 +1,47 @@ +dbforge->add_field(array( + 'id' => array( + 'type' => 'INT', + 'constraint' => '5', + 'unsigned' => TRUE, + 'auto_increment' => TRUE, + ), + 'regioid' => array( + 'type' => 'INT', + 'constraint' => '3', + 'unsigned' => TRUE, + ), + 'jaar' => array( + 'type' => 'INT', + 'constraint' => '4', + 'unsigned' => TRUE, + ), + 'name' => array( + 'type' => 'VARCHAR', + 'constraint' => '80', + ), + 'value' => array( + 'type' => 'VARCHAR', + 'constraint' => '80', + ), + )); + $this->dbforge->add_key('id', TRUE); + $this->dbforge->create_table('config'); + + } + + public function down() + { + $this->dbforge->drop_table('config'); + } +} \ No newline at end of file diff --git a/application/models/Config_model.php b/application/models/Config_model.php new file mode 100644 index 0000000..0ffcbc5 --- /dev/null +++ b/application/models/Config_model.php @@ -0,0 +1,50 @@ +db->select('id, username, admin, superadmin'); + $this->db->from('user'); + $this->db->where('regioid', $this->session->regio); + $this->db->order_by('username', 'ASC'); + + $query = $this->db->get(); + + return $query->result_array(); + } + + public function update_user_rights($users) + { + foreach ($users as $id=>$user) + { + $this->db->where('id', $id); + $this->db->where('regioid', $this->session->regio); + $this->db->update('user', $user); + } + } + + public function add_user($user) + { + $this->db->insert('user', $user); + } + + public function remove_user($id) + { + $this->db->where('id', $id); + if ($this->session->superadmin != '1') { + $this->db->where('superadmin !=', '1'); + } + $this->db->delete('user'); + } +} \ No newline at end of file diff --git a/application/views/config_common.php b/application/views/config_common.php new file mode 100644 index 0000000..0b2c093 --- /dev/null +++ b/application/views/config_common.php @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/application/views/config_tabbar.php b/application/views/config_tabbar.php new file mode 100644 index 0000000..7d84d65 --- /dev/null +++ b/application/views/config_tabbar.php @@ -0,0 +1,25 @@ +
+
+ diff --git a/application/views/config_users.php b/application/views/config_users.php new file mode 100644 index 0000000..8d31524 --- /dev/null +++ b/application/views/config_users.php @@ -0,0 +1,51 @@ +
+
+
+ + + + + + + session->superadmin == '1') { ?> + + + + + + + + + + + session->superadmin == '1') { ?> + + + + + + +
NaamAdminSuperadmin
+ + session->superadmin != '1') { ?> + + + + + + + + +
+
+ + +

+ + + +
+ +
+
+
\ No newline at end of file diff --git a/application/views/config_users_add.php b/application/views/config_users_add.php new file mode 100644 index 0000000..99ece79 --- /dev/null +++ b/application/views/config_users_add.php @@ -0,0 +1,45 @@ +
+
+
+ + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+
+
+ + session->superadmin == '1') { ?> +
+ +
+
+
+
+ + +
+
+ + +
+
+ +
+
+ \ No newline at end of file diff --git a/application/views/header.php b/application/views/header.php index 325bc6f..9a86e1c 100644 --- a/application/views/header.php +++ b/application/views/header.php @@ -28,7 +28,7 @@
  • class="active" >Home
  • class="active" >Beoordelen
  • session->admin == '1' OR $this->session->superadmin == '1') { ?> -
  • class="active" >Configuratie
  • +
  • class="active" >Configuratie
  • class="active" >Informatie
  • session->superadmin == '1') { ?>