masalah session login pada codeigniter

halo temen", saya mau bertanya. Saya membuat login hak akses, saya udah berhasil tapi ada bug, "ketika saya masuk sebagai karyawan dan saya mengedit urlnya menjadi manager, halaman manager tersebut tetap tampil" minta solusinya dong

controller

 <?php if (!defined('BASEPATH')) exit('No direct script access allowed');
	class Login extends MX_Controller
{

function __construct() {
	parent::__construct();
}

public function index(){

	$this->load->view('login/v_login.php');
}

public function cek_login() {

	$user  = $_POST['karyawan_id'];
	$pwd   = $_POST['password'];

	$this->load->model('mdl_login');

	$result=$this->mdl_login->getlogin($user,$pwd)->row();

	if($result)
	{
	 	$sess = array();
			$sess['id']    = $result->karyawan_id;
			$sess['level'] = $result->karyawan_level;
			$sess['is_logged_in'] ='1';
		 	$this->session->set_userdata($sess);
	}
		 	if($this->session->userdata('level') == 'karyawan')	redirect('karyawan/');
		 	elseif($this->session->userdata('level') == 'manager') redirect('manager/');
			elseif($this->session->userdata('level') == 'client') redirect('client/');
			else {
				 	$this->session->set_flashdata('pesan','Oops !!  Username or password error. Please try again');
					redirect('login');
				 }

}

public function logout() {
		$this->session->sess_destroy();
		redirect('login/');

	}

}

models

 <?php
	class Mdl_login extends CI_Model {

function __construct() {
	parent::__construct();
}

	public function getlogin($user,$pwd)
	{
		$this->db->where('karyawan_id',$user);
		$this->db->where('karyawan_password',$pwd);
		$query = $this->db->get('karyawan');

		return $query;

	}

}

avatar deni2
@deni2

58 Kontribusi 11 Poin

Diperbarui 6 tahun yang lalu

1 Jawaban:

Kalau gitu masalahnya mas bisa kasih hak akses dimasing2 kontroller. Misal. controller karyawan nanti di beri hak akses, level karyawan dan manager yang bisa akses halaman tersebut. Bisa pakai sessionnya mas tsb

Contoh misal ini ada di kontroller karyawan ya, bisa taruh di construct


if($this->session->userdata('level') != 'karyawan'
|| $this->session->userdata('level') != 'manager') {
redirect kehalaman lain
}


avatar markeronly
@markeronly

378 Kontribusi 230 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban