lang->load('user');
}
public function index()
{
}
/**
* Login a user and then redirect it to the last page which must be encoded
* in $redirect.
*
* @param string $redirect contains the last page URI segments encoded
* with helper url_encode_segments.
*/
public function login($redirect = '')
{
$this->load->library('form_validation');
$this->load->model('users_model');
$this->form_validation->set_error_delimiters('',
'');
if ($this->form_validation->run('signin') === FALSE)
{
$params = array( 'title' =>
$this->lang->line('ui_nav_menu_login')
.' – '
. $this->config->item('site_name'),
//'metas' => array('description'=>'')
);
$this->load->library('html_head_params', $params);
// **
// ** LOADING VIEWS
// **
$this->load->view('html_begin', $this->html_head_params);
$this->load->view('header', array('selected_menu' => 'login'));
$this->load->view('user/login_view', array(
'redirect'=> $redirect
));
$this->load->view('footer');
$this->load->view('html_end');
}
else
{
if ($this->user_id !== NULL)
{
$this->session->set_userdata(array(
'user_id'=> $this->user_id,
'username'=> $this->username
));
// Redirect to last page before login.
header('Location: '. site_url(urldecode_segments($redirect)));
}
else
{
$this->session->set_userdata(array(
'username'=> $this->username
));
// Redirect to register page because an user authenticates here
// for the first time with LDAP.
// TODO
header('Location: '. site_url(urldecode_segments($redirect)));
}
}
}
/**
* Logout user and then redirect it to the last page which must be encoded
* in $redirect.
*
* @param string $redirect contains the last page URI segments encoded
* with helper url_encode_segments.
*/
public function logout($redirect = '')
{
$this->session->unset_userdata('user_id');
$this->session->unset_userdata('username');
header('Location: '. site_url(urldecode_segments($redirect)));
}
public function register($redirect = '')
{
$this->load->library('form_validation');
$this->load->model('users_model');
$this->load->helper('localization');
$this->load->helper('date');
$this->form_validation->set_error_delimiters('',
'');
if ($this->form_validation->run('register') === FALSE)
{
$params = array('title' =>
$this->lang->line('ui_nav_menu_register')
.' – '
. $this->config->item('site_name'),
//'metas' => array('description'=>'')
);
$this->load->library('html_head_params', $params);
// **
// ** LOADING VIEWS
// **
$this->load->view('html_begin', $this->html_head_params);
$this->load->view('header', array('selected_menu' => 'register'));
$this->load->view('user/register_view', array(
'redirect'=> $redirect
));
$this->load->view('footer');
$this->load->view('html_end');
}
else
{
if ($this->user_id !== NULL)
{
$this->session->set_userdata(array(
'user_id'=> $this->user_id,
'username'=> $this->username
));
// Redirect to last page before login.
header('Location: '. site_url(urldecode_segments($redirect)));
}
else
{
$this->session->set_userdata(array(
'username'=> $this->username
));
// Redirect to register page because an user authenticates here
// for the first time with LDAP.
// TODO
header('Location: '. site_url(urldecode_segments($redirect)));
}
}
}
public function _valid_username($username)
{
return (preg_match('/^[a-z0-9\._]+$/', $username) == 1);
}
public function _valid_username_or_email($username)
{
$this->load->helper('email');
if (valid_email($username))
return TRUE;
else
return $this->_valid_username($username);
}
public function _do_login($username, $field_password)
{
$password = $this->input->post('password');
$this->load->model('users_model');
$user = $this->users_model->login($username, $password);
// Authentication failed
if ($user === FALSE)
return FALSE;
// First authentication of a user with LDAP, i.e. the user does not
// have an user_id in `users` DB table yet.
if ($user['auth_src'] == 'ldap_first_time')
{
$this->ldap_user_info = $user;
$this->username = $user['uid'][0];
$this->email = $user['mail'][0];
return TRUE;
}
// Authentication when the user has an user_id in the DB.
$this->username = $user['username'];
$this->email = $user['email'];
$this->user_id = $user['id'];
return TRUE;
}
}
/* End of file user.php */
/* Location: ./application/controllers/user.php */