salam kenal CI master & mohon bantuannya
saya lg coba buat multilevel user login,,jadi halaman yang d tampilkan tergantung tingkatan user yg login...saya ambil kasus dosen mahasiswa,,
Masalahnya pada code saya dosen(ecaiseng2) bisa login tp mahasiswa(ecaiseng) g bs...
mohon bantuannya CI master,,
ini skrip library saya...
if( ! defined('BASEPATH')) exit('Akses Langsung Terlarang'); class Tinyauth { var $CI = NULL; var $_valid = NULL; public function __construct() { $this->CI =& get_instance(); $this->CI->load->database(); $this->CI->load->library('session'); $this->CI->load->library('form_validation'); $this->_valid = $this->CI->form_validation; $this->_wrapper = $this->CI->config->item('view'); } public function login($page) { $this->restrict(TRUE); if($page == "") { $page = $this->_wrapper; } $config = array(array('field'=>'username', 'label'=>'Username', 'rules'=>'trim|required|xss_clean |min_length[3] |max_length[20]'), array('field'=>'password', 'label'=>'Password', 'rules'=>'trim|required|min_length[6]') ); $this->_valid->set_rules($config); if( $this->_valid->run() !==FALSE AND $this->CI->input->post('submit_login') !=FALSE) { $login = array('username'=>$this->CI->input->post('username'), 'password'=>$this->CI->input->post('password') ); if( $this->_validate_login($login)) { $this->redirect(); } } $data = array('page_title'=>'Silahkan Login Untuk Pengisian Polling', 'page_content'=>'login' ); $this->CI->load->view($page,$data); } private function _validate_login($login = NULL) { $this->CI->load->helper('array'); if( ! isset($login) && ! is_array($login)) { return FALSE; } if(count($login) !=2) { return FALSE; } $query = $this->CI->db->get_where('user',array('username'=>$login['username'], 'password'=>$login['password'])); if($query->num_rows() ==1) { foreach($query->result() as $val) { $uname = $val->username; $ulevel = $val->access; } $this->CI->session->set_userdata('logged_user',$uname); $this->CI->session->set_userdata('logged_user_level', 'is_' .element($ulevel,$this->CI->config->item('user_level'))); return TRUE; } else { return FALSE; } } public function logged_in() { if($this->CI->session->userdata('logged_user') == "") { return FALSE; } else { return TRUE; } } public function logout () { $this->CI->session->sess_destroy(); redirect('login/form'); } public function redirect() { if($ulevel = "dosen" ) { redirect('dosen/home'); } if($ulevel = "mahasiswa') { redirect('mahasiswa/home'); } else { redirect($this->CI->session->userdata('redirector')); } } public function restrict($logged_out = FALSE) { if($logged_out AND $this->logged_in()) { $this->redirect(); } if( ! $logged_out AND ! $this->logged_in()) { $this->CI->session->set_userdata('redirector',$this->CI->uri->uri_string()); redirect('login/form','location'); } } public function restrict_level($level) { if(FALSE == $this->check_level($level)) { $this->redirect(); } } public function check_level($ulevel) { $cookie = substr($this->CI->session->userdata('logged_user_level'),3); if($cookie != $ulevel) { return FALSE; } else { return TRUE; } } }
ini jg sy attach filex...
sekali lagi mohon bantuannya master...
Attachment | Size |
---|---|
Tinyauth.rar | 1.12 KB |
hm... itu cuma controller ya???
susah jg kalo g baca model nya...
hampir sama ama yg ini https://codeigniter-id.com/node/908 ,
kalo boleh usul, skripnya di pilah, controller login.php untuk mengolah form login, sedang untuk me-enkript data pas login di file lain (klo d saya, saya taruh d folder library)...
m'f skip tdk sy pisah..maklum newbie,,he3X
lain kali saya rapikan...trims
iy..itu lbh brsifat kontroler tp sy taruh d library berdasarkn referensi buku yg sy baca...
jd d file kontrolernya cuma tinggal manggil fungsi-fungsinya aj spt "restrict", dll
public function redirect()
{
// kalau ngak salah ini kesalahanya silahkan di cek
/************************************/
if($ulevel = "dosen" )
/************************************/
{
redirect('dosen/home');
}
else
{
redirect($this->CI->session->userdata('redirector'));
}
}