⚝
One Hat Cyber Team
⚝
Your IP:
192.168.31.6
Server IP:
192.168.1.11
Server:
Linux pams 6.1.0-29-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.123-1 (2025-01-02) x86_64
PHP Version:
8.2.28
Buat File
|
Buat Folder
Upload File
Eksekusi
Dir :
~
/
var
/
www
/
pusaka
/
modules
/
User
/
Controllers
/
Viewing : User.php
<?php namespace Modules\User\Controllers; use App\Controllers\BaseController; use Ramsey\Uuid\Uuid; class User extends BaseController { public function index() { $data['title'] = 'User'; $data['li_1'] = 'Daftar User'; $data['body'] = 'Modules\User\Views\list.php'; $data['table'] = $this->db->table('user')->get()->getResult(); return view('template', $data); } public function add(){ $p = $this->request->getPost(); $rules = [ 'nama' => [ 'label' => 'Nama Lengkap', // Mengizinkan Huruf (A-z), Spasi, Titik (.), dan Koma (,) 'rules' => 'required|regex_match[/^[a-zA-Z\s.,]*$/]|min_length[3]|max_length[100]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'regex_match' => '{field} hanya boleh berisi huruf, spasi, titik, atau koma.', // Pesan error baru 'min_length' => '{field} minimal {param} karakter.', 'max_length' => '{field} maksimal {param} karakter.', ], ], 'username' => [ 'label' => 'Alamat Email', 'rules' => 'required|valid_email|max_length[50]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'valid_email' => '{field} harus dalam format yang valid.', 'max_length' => '{field} maksimal {param} karakter.', ], ], 'password' => [ 'label' => 'Password', 'rules' => 'required|min_length[8]|max_length[255]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'min_length' => '{field} minimal {param} karakter.', 'max_length' => '{field} maksimal {param} karakter.', ], ], 'konfirmasi_password' => [ 'label' => 'Konfirmasi Password', 'rules' => 'required|matches[password]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'matches' => '{field} tidak cocok dengan password.', ], ], 'level' => [ 'label' => 'Level Akun', 'rules' => 'required|in_list[1,2]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'in_list' => '{field} harus salah satu dari: super admin atau kasir.', ], ], ]; if (! $this->validateData($p,$rules)) { session()->setFlashData(gagal(form_error($this->validator->getErrors()))); return redirect()->to(base_url('admin/user')); } $p['password'] = password_hash($p['password'], PASSWORD_DEFAULT); $id = Uuid::uuid4()->toString(); $d = [ 'id' => $id, 'nama' => $p['nama'], 'un' => $p['username'], 'pass' => $p['password'], 'level' => $p['level'] ]; if($this->db->table('user')->insert($d)){ session()->setFlashData(success('Berhasil Menyimpan Data')); return redirect('user'); }else{ session()->setFlashData(gagal('Masalah Koneksi Database')); return redirect('user'); } } public function reset(){ $p = $this->request->getPost(); $rules = [ 'password' => [ 'label' => 'Password', 'rules' => 'required|min_length[8]|max_length[255]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'min_length' => '{field} minimal {param} karakter.', 'max_length' => '{field} maksimal {param} karakter.', ], ], 'konfirmasi_password' => [ 'label' => 'Konfirmasi Password', 'rules' => 'required|matches[password]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'matches' => '{field} tidak cocok dengan password.', ], ] ]; if (! $this->validateData($p,$rules)) { session()->setFlashData(gagal(form_error($this->validator->getErrors()))); return redirect()->to(base_url('admin/user')); } $p['password'] = password_hash($p['password'], PASSWORD_DEFAULT); $d = [ 'pass' => $p['password'] ]; if($this->db->table('user')->where('id', enc($p['data_id']))->update($d)){ session()->setFlashData(success('Berhasil Menyimpan Data')); return redirect()->to(base_url('admin/user')); }else{ session()->setFlashData(gagal('Masalah Koneksi Database')); return redirect()->to(base_url('admin/user')); } } public function delete($id = null){ if($this->db->table('user')->where('id', enc($id))->delete()){ session()->setFlashData(success('Berhasil Mengapus Data')); return redirect()->to(base_url('admin/user')); }else{ session()->setFlashData(gagal('Masalah Koneksi Database')); return redirect()->to(base_url('admin/user')); } } public function get($id = null){ $d = $this->db->table('user')->where('id', enc($id))->get()->getRow(); return json_encode($d); } public function edit(){ $p = $this->request->getPost(); $rules = [ 'nama' => [ 'label' => 'Nama Lengkap', // Mengizinkan Huruf (A-z), Spasi, Titik (.), dan Koma (,) 'rules' => 'required|regex_match[/^[a-zA-Z\s.,]*$/]|min_length[3]|max_length[100]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'regex_match' => '{field} hanya boleh berisi huruf, spasi, titik, atau koma.', // Pesan error baru 'min_length' => '{field} minimal {param} karakter.', 'max_length' => '{field} maksimal {param} karakter.', ], ], 'username' => [ 'label' => 'Alamat Email', 'rules' => 'required|valid_email|max_length[50]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'valid_email' => '{field} harus dalam format yang valid.', 'max_length' => '{field} maksimal {param} karakter.', ], ], 'level' => [ 'label' => 'Level Akun', 'rules' => 'required|in_list[1,2,3,4]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'in_list' => '{field} harus salah satu dari: admin atau user.', ], ], ]; if (! $this->validateData($p,$rules)) { session()->setFlashData(gagal(form_error($this->validator->getErrors()))); return redirect()->to(base_url('admin/user')); } $d = [ 'nama' => $p['nama'], 'un' => $p['username'], 'level' => $p['level'] ]; if($this->db->table('user')->where('id', enc($p['data_id']))->update($d)){ session()->setFlashData(success('Berhasil Menyimpan Data')); return redirect()->to(base_url('admin/user')); }else{ session()->setFlashData(gagal('Masalah Koneksi Database')); return redirect()->to(base_url('admin/user')); } } public function login() { return view('Modules\User\Views\login'); } public function act(){ $p = $this->request->getPost(); $rules = [ 'username' => [ 'label' => 'Username', 'rules' => 'required|min_length[3]|max_length[100]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'min_length' => '{field} minimal {param} karakter.', 'max_length' => '{field} maksimal {param} karakter.', ], ], 'password' => [ 'label' => 'Password', 'rules' => 'required|min_length[8]|max_length[255]', 'errors' => [ 'required' => '{field} tidak boleh kosong.', 'min_length' => '{field} minimal {param} karakter.', 'max_length' => '{field} maksimal {param} karakter.', ], ], ]; if (! $this->validateData($p,$rules)) { session()->setFlashData(gagal(form_error($this->validator->getErrors()))); return redirect()->to(base_url('login')); } $builder = $this->db->table('user'); $user = $builder->where(['un' => $p['username']])->get()->getRow(); if (!$user) { session()->setFlashData(gagal('User tidak ditemukan')); return redirect()->to(base_url('login')); } $pass = $p['password']; if (!password_verify($pass, $user->pass)) { // Password salah session()->setFlashData(gagal('Password Salah')); return redirect()->to(base_url('login')); } $userData = [ 'id' => $user->id, 'nama' => $user->nama, 'level' => $user->level, 'logged_in' => TRUE ]; session()->set($userData); session()->setFlashData(success('Login Berhasil, Mengarahkan ke Dashboard')); return redirect()->to(base_url()); } public function logout(){ session()->destroy(); session()->setFlashData(success('Logout Berhasil, Mengarahkan ke Login')); return redirect()->to(base_url('login')); } }