Skip to content

Instantly share code, notes, and snippets.

@hugofabricio
Created September 4, 2013 20:37
Show Gist options
  • Save hugofabricio/6442542 to your computer and use it in GitHub Desktop.
Save hugofabricio/6442542 to your computer and use it in GitHub Desktop.
<?php
App::uses('AppController', 'Controller');
class UsuariosAppController extends AppController {
/**
* Métodos carregados antes da action ser chamada
*/
public function beforeFilter()
{
// Se acessar a área do cliente
if ($this->isPrefix('painel')):
// Troca o layout
$this->layout = 'cms';
// Configurações do Cookie
$this->Cookie->time = '30 Days'; // or '1 hour'
$this->Cookie->key = 'FF()XA(S*D)AS3sA(Sd80A(SDA*STAS%D4$AS#SD@ASDtyASIH)_AS0dAoIASNKAshgaFA$#S21d32G2s45dAS$3d#A@$SDAZCHVASCa4s33%$ˆ$%$#s253$AS5#Â$%s645$#AS@%#AˆS6%A&*SÂ%S$';
$this->Cookie->httpOnly = true;
// Chave da Sessão
AuthComponent::$sessionKey = 'Auth.Painel';
// Configurações de Autenticação
$this->Auth->authenticate = array(
'Blowfish' => array(
'userModel' => 'Usuario',
'fields' => array(
'username' => 'usuario',
'password' => 'senha',
),
'scope' => array(
'Usuario.status' => true
)
)
);
// Página de login
$this->Auth->loginAction = array('plugin' => 'usuarios', 'controller' => 'usuarios', 'action' => 'login', 'painel' => true);
// Redirecionamento ao logar
$this->Auth->loginRedirect = array('plugin' => false, 'controller' => 'home', 'action' => 'index', 'painel' => true);
// Redirecionamento ao sair
$this->Auth->logoutRedirect = array('plugin' => 'usuarios', 'controller' => 'usuarios', 'action' => 'login', 'painel' => true);
// Mensagem de erro
$this->Auth->authError = 'Você não tem permissão para acessar esta área.';
if (!$this->Auth->loggedIn() && $this->Cookie->check('Auth.Painel')):
// Cookie
$cookie = $this->Cookie->read('Auth.Painel');
// Busca o cliente
$usuario = $this->Usuario->find('first', array(
'conditions' => array(
'Usuario.usuario' => $cookie['usuario']
)
)
);
// Login manual do usuário
if ($this->Auth->login($usuario['Usuario'])){
$this->redirect('/painel');
}
// Login automatico do usuário
if ($this->Auth->loggedIn() && $this->params->controller == 'usuarios' && $this->params->action == 'painel_login')
$this->redirect('/painel');
endif;
endif;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment