Olá cambada. Continuando nosssa série, agora com um post curtinho, mas muito útil. Vamos falar de uma biblioteca bem simples que desenvolvi para me auxiliar na captura de informações do usuário logado. Nós utilizamos a mesma nos posts passados, e eu recebi algumas sugestões através da lista do Codeigniter no Brasil, para que eu explica-se mais a bilioteca.
AUTH
O nome eu dei para ficar referente a autenticação, como muitos devem perceber. A biblioteca possui as seguintes funcionalidades, que eu prefiro chamar de FACILIDADES
.
- Checar se o usuário está logado. Método: check_logged()
- Trazer informações do usuário logado. Método: authInfo()
Mas não se resume a isso, pois os parâmetros passados nos métodos, podem facilitar ainda mais. Vamos destrinchá-los.
check_logged($return = ”,$controller = ‘login’)
- Podemos observar que a função possui um parâmetro a ser passado opcionalmente. Este parâmetro é responsável pelo tipo de retorno que a função nos dará.
Se nenhum parâmetro for passado a função check_logged(), então a biblioteca fará a verificação seguinte:
Usuário Logado? Retorno: TRUE
Usuário não Logado? Página recarregada para o controller escolhido como segundo parâmetro.
Se o parâmetro for passado como TRUE, teremos:
Usuário Logado? Retorno: TRUE
Usuário não Logado? Retorno: FALSE
Se você pensar um pouco, verá que isso tem uma utilidade gigante, quando você quer por exemplo, restringir acesso a certos controllers da sua aplicação, verificando se o usuário está logado ou não, apenas passando a seguinte linha no construtor:
$this->auth->check_logged(); // A biblioteca se encarrega de tirar o usuário do controller e protege o acesso.
authInfo()
- Nesta função, nós podemos trazer as informações do usuário autenticado no sistema. Caso o mesmo não esteja logado, a função retornará false. Vemos uma das utilidades para esta função, no caso de obter informações para mostrar “bem-vindos”, “tempo de login”, etc.
Código
Agora que já descrevi as funcionalidade/facilidades da biblioteca, vou postar o seu código abaixo:
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* CodeIgniter
*
* An open source application development framework for PHP 4.3.2 or newer
*
* @package CodeIgniter
* @author ExpressionEngine Dev Team
* @copyright Copyright (c) 2008, EllisLab, Inc.
* @license http://codeigniter.com/user_guide/license.html
* @link http://codeigniter.com
* @since Version 1.0
* @filesource
*/
// ------------------------------------------------------------------------
/**
* Auth Class
*
*
*
* @package CodeIgniter
* @subpackage Libraries
* @category Login
* @author Djalma Araújo de Andrade
* @link http://web.djalmaaraujo.com.br/projects/codeigniter/lib/auth.txt
*/
class auth
{
private $ci;
private $user_login;
function __construct()
{
$this->ci = &get_instance();
}
function check_logged($return = '', $controller = 'login')
{
$this->user_login = $this->ci->session->userdata('user_logged');
if ($this->user_login['logged'] == 1) {
return true;
} else {
if ((!empty($return)) && ($return == true)) {
return false;
} else {
redirect('/' . $controller . '/', 'refresh');
}
}
} //End logged
function authInfo()
{
$this->user_login = $this->ci->session->userdata('user_logged');
if ($this->user_login['logged'] == true) {
return $this->user_login;
} else {
return false;
}
}
}
Bom, é isso, se você quiser aliar esta biblioteca com suas aplicações, ficarei feliz, mas o importante é estar passando o conhecimento de criar novas funcionalidades no codeigniter.
Por hoje é só.
That’s all Folks.
Djalma Araújo


