. * */ /** * @author Greg Wojtak * @copyright Copyright © 2010,2011 by Greg Wojtak * @package Auth_Ldap * @subpackage auth demo * @license GNU Lesser General Public License */ class Auth extends CI_Controller { function __construct() { parent::__construct(); $this->load->helper('form'); $this->load->library('Form_validation'); $this->load->library('auth_ldap'); $this->load->helper('url'); $this->load->library('table'); } function index() { $this->session->keep_flashdata('tried_to'); $this->login(); } function login($errorMsg = NULL) { $this->session->keep_flashdata('tried_to'); if (!$this->auth_ldap->is_authenticated()) { // Set up rules for form validation $rules = $this->form_validation; $rules->set_rules('username', 'Username', 'required|callback_alpha_dash_dot'); $rules->set_rules('password', 'Password', 'required'); // Do the login... if ($rules->run() && $this->auth_ldap->login($rules->set_value('username') , $rules->set_value('password'))) { // Login WIN! if ($this->session->flashdata('tried_to')) { redirect($this->session->flashdata('tried_to')); } else { redirect('/'); } } else { // Login FAIL $this->session->set_flashdata('login_error', 'Incorrect username or password.'); $this->load->view('auth/login_form'); } } else { // Already logged in... redirect('/'); } } function logout() { if ($this->session->userdata('logged_in')) { $data['name'] = $this->session->userdata('cn'); $data['username'] = $this->session->userdata('username'); $data['logged_in'] = TRUE; $this->auth_ldap->logout(); } else { $data['logged_in'] = FALSE; } redirect('/'); } public function alpha_dash_dot($str) { return (!preg_match("/^([-a-z0-9_-\.])+$/i", $str)) ? FALSE : TRUE; } } ?>