Skip to content

Instantly share code, notes, and snippets.

@hugofabricio
Created August 21, 2013 20:13
Show Gist options
  • Save hugofabricio/6299590 to your computer and use it in GitHub Desktop.
Save hugofabricio/6299590 to your computer and use it in GitHub Desktop.
<?php
/**
*
* AppController
*
*/
App::uses('Controller', 'Controller');
class AppController extends Controller {
// Components utilizados na aplicação
public $components = array(
'Auth',
'Session'
);
// Helpers utilizados na aplicação
public $helpers = array(
'Html',
'Form',
'Session'
);
// Função para verificar o prefixo atual
public function isPrefix($prefix) {
return isset($this->request->params['prefix']) &&
$this->request->params['prefix'] == $prefix;
}
// Métodos carregados antes da action ser chamada
public function beforeFilter() {
if ($this->isPrefix('cliente')):
// Troca o layout
$this->layout = 'cliente';
// Chave da Sessão
$this->Auth->sessionKey = 'Auth.Cliente';
// Página de login
$this->Auth->loginAction = array('controller' => 'clientes', 'action' => 'login', 'cliente' => true);
// Redirecionamento ao logar
$this->Auth->loginRedirect = array('controller' => 'home', 'action' => 'login', 'cliente' => true);
// Redirecionamento ao sair
$this->Auth->logoutRedirect = array('controller' => 'clientes', 'action' => 'login', 'cliente' => true);
// Configurações de Autenticação
$this->Auth->authenticate = array(
'Blowfish' => array(
'userModel' => 'Cliente',
'fields' => array(
'username' => 'email',
'password' => 'senha',
),
'scope' => array(
'Cliente.status' => true
)
)
);
elseif ($this->isPrefix('painel')):
// Troca o layout
$this->layout = 'cms';
// Chave da Sessão
$this->Auth->sessionKey = 'Auth.Painel';
// Página de login
$this->Auth->loginAction = array('controller' => 'usuarios', 'action' => 'login', 'painel' => true);
// Redirecionamento ao logar
$this->Auth->loginRedirect = array('controller' => 'home', 'action' => 'index', 'painel' => true);
// Redirecionamento ao sair
$this->Auth->logoutRedirect = array('controller' => 'usuarios', 'action' => 'login', 'painel' => true);
// Configurações de Autenticação
$this->Auth->authenticate = array(
'Blowfish' => array(
'userModel' => 'Usuario',
'fields' => array(
'username' => 'usuario',
'password' => 'senha',
),
'scope' => array(
'Usuario.status' => true
)
)
);
else:
$this->Auth->allow();
endif;
// Chamadas de callbacks
return parent::beforeFilter();
}
// Define se um usuário pode acessar uma página
public function isAuthorized($user) {
return true;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment