Files
web-sekolah/application/controllers/User.php
T
2026-06-26 13:37:55 +07:00

149 lines
4.6 KiB
PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class User extends CI_Controller {
//load model
public function __construct()
{
parent::__construct();
$this->load->model('user_model');
//proteksi halaman
$this->simple_login->check_login();
//ptoteksi admin
if($this->session->userdata('level') !='Administrator')
{
//kalau bukan adamin, lempar ke login
$this->session->set_flashdata('warning', 'Hak akses anda tidak diijinkan mengakses menu pengguna');
redirect(base_url('login'),'refresh');
}
}
//Data user
public function index()
{
$user = $this->user_model->listing();
$total = $this->user_model->total();
//validasi input
$valid = $this->form_validation;
//check nama
$valid->set_rules('nama','Nama Lengkap','required',
array( 'required' => '%s harus diisi...'));
//check email
$valid->set_rules('email','Email','required|valid_email',
array( 'required' => '%s harus diisi',
'valid_email' => '%s tidak valid. Masukan email yang benar'));
//check username
$valid->set_rules('userid','Userid','required|is_unique[user2.userid]',
array( 'required' => '%s harus diisi',
'is_unique' => '%s sudah ada. Buat userid baru'));
//check password
$valid->set_rules('password','Password','required|min_length[6]|max_length[32]',
array( 'required' => '%s harus diisi',
'min_length' => '%s minimal 6 karakter',
'max_length' => '%s maksimal 32 karakter'));
//jika sudah dicek dan error
if($valid->run()===FALSE) {
//end validasi
$data = array( 'title' => 'Data Pengguna User [ '.$total->total.' ]',
'user' => $user,
'content' => 'user/index'
);
$this->load->view('layout/wrapper', $data, FALSE);
//jika validasi oke, masuk database
}else{
$inp = $this->input;
$data = array( 'nama' => $inp->post('nama'),
'email' => $inp->post('email'),
'userid' => $inp->post('userid'),
'password' => MD5($inp->post('password')),
'level' => $inp->post('level'),
'gambar' => $inp->post('gambar'),
);
//proses oleh model
$this->user_model->tambah($data);
//notifikasi dan redirect
$this->session->set_flashdata('sukses', 'Data user telah ditambah');
redirect(base_url('user'),'refresh');
}
//end masuk database
}
//Edit user
public function edit($id)
{
//panggil data user yang akan diedit
$user = $this->user_model->detail($id);
//validasi input
$valid = $this->form_validation;
//check nama
$valid->set_rules('nama','Nama Lengkap','required',
array( 'required' => '%s harus diisi'));
//check email
$valid->set_rules('email','Email','required|valid_email',
array( 'required' => '%s harus diisi',
'valid_email' => '%s tidak valid. Masukan email yang benar'));
//check password
$valid->set_rules('password','Password','required|min_length[6]|max_length[32]',
array( 'required' => '%s harus diisi',
'min_length' => '%s minimal 6 karakter',
'max_length' => '%s maksimal 32 karakter'));
//jika sudah dicek dan error
if($valid->run()===FALSE) {
//end validasi
$data = array( 'title' => 'Edit Data User : '.$user->nama,
'user' => $user,
'content' => 'user/edit'
);
$this->load->view('layout/wrapper', $data, FALSE);
//jika validasi oke, masuk database
}else{
$inp = $this->input;
//check panjang password, jika lebih 6 karakter maka password diganti
//jika password lebih dari 32 maka password tidak diganti
if(strlen($inp->post('password')) >= 6 || strlen($inp->post('password')) <= 32) {
//password diganti
$data = array( 'id' => $id,
'nama' => $inp->post('nama'),
'email' => $inp->post('email'),
'password' => MD5($inp->post('password')),
'level' => $inp->post('level'),
);
}else{
//jika kurang dari 6 atau lebih dari 32 maka tidak diganti
$data = array( 'id' => $id,
'nama' => $inp->post('nama'),
'email' => $inp->post('email'),
'level' => $inp->post('level'),
);
}
//proses oleh model
$this->user_model->edit($data);
//notifikasi dan redirect
$this->session->set_flashdata('sukses', 'Data user '.$user->nama.' telah diedit');
redirect(base_url('user'),'refresh');
}
//end masuk database
}
//Delete user
public function delete($id)
{
$data = array('id' => $id);
//proses hapus
$this->user_model->delete($data);
//notifikasi
$this->session->set_flashdata('sukses', 'Data user telah dihapus');
redirect(base_url('user'),'refresh');
}
}
/* End of file User.php */
/* Location: ./application/controllers/User.php */