Skip to main content

multilevel user login

3 replies [Last post]
does not have a status.
ecaiseng's picture
User offline. Last seen 5 weeks 2 days ago. Offline
Joined: 02/28/2011

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...

AttachmentSize
Tinyauth.rar1.12 KB

->ace<-

does not have a status.
kucluk21's picture
User offline. Last seen 2 days 33 min ago. Offline
Joined: 05/03/2011
kesalahan

public function redirect()
{
// kalau ngak salah ini kesalahanya silahkan di cek
/************************************/
if($ulevel = "dosen" )
/************************************/
{
redirect('dosen/home');
}

else
{
redirect($this->CI->session->userdata('redirector'));
}
}

now... what????
zawaruddin's picture
User offline. Last seen 1 day 19 hours ago. Offline
Joined: 02/28/2011
hm... itu cuma controller

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)...

------------------------------------------------------------
Go..Go..Go.. CodeIgniter

Visit My Blog @ zawaruddin.blogspot.com

does not have a status.
ecaiseng's picture
User offline. Last seen 5 weeks 2 days ago. Offline
Joined: 02/28/2011
library vs controller

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

->ace<-

Premium Drupal Themes by Adaptivethemes