class Controller extends Zend_Controller_Action
{
public function preDispatch()
{
//
}
}
class Controller extends Zend_Controller_Action
{
public function preDispatch()
{
$this->user = $this->getUser();
}
public function getUser() {
Zend_Session::start();
$namespace = new Zend_Session_Namespace('Zend_Auth');
if($namespace->storage) {
$user['id'] = $namespace->storage->id;
$user['username'] = $namespace->storage->username;
$user['name'] = $namespace->storage->name;
// .
$user['group'] = $namespace->storage->group;
return $user;
}
else {
// ,
return array('id' => '0','username' => 'Guest','name' => '','group' => 'guest');
}
}
}
$acl = new Zend_Acl();
// , ..
$acl->addRole(new Zend_Acl_Role('guest'))
->addRole(new Zend_Acl_Role('user'))
->addRole(new Zend_Acl_Role('admin'));
// ,
$acl->add(new Zend_Acl_Resource('index'));
$acl->add(new Zend_Acl_Resource('articles'));
$acl->add(new Zend_Acl_Resource('user'));
$acl->add(new Zend_Acl_Resource('auth'));
$acl->add(new Zend_Acl_Resource('error'));
$acl->add(new Zend_Acl_Resource('registration'));
// ( - Action ) null =
$acl->deny('guest', 'user', null);
//
$acl->allow(null, null, null);
//
if(!$acl->isAllowed($this->user['group'], $this->getRequest()->getControllerName(),$this->getRequest()->getActionName())) {
// ,
$this->_redirect('/error/error/');
}
class Controller extends Zend_Controller_Action
{
public function preDispatch()
{
$this->user = $this->getUser();
$acl = new Zend_Acl();
$acl->addRole(new Zend_Acl_Role('guest'))
->addRole(new Zend_Acl_Role('user'))
->addRole(new Zend_Acl_Role('admin'));
$acl->add(new Zend_Acl_Resource('index'));
$acl->add(new Zend_Acl_Resource('articles'));
$acl->add(new Zend_Acl_Resource('user'));
$acl->add(new Zend_Acl_Resource('auth'));
$acl->add(new Zend_Acl_Resource('error'));
$acl->add(new Zend_Acl_Resource('registration'));
$acl->deny('guest', 'user', null);
$acl->allow(null, null, null);
$request = $this->getRequest();
if(!$acl->isAllowed($this->user['group'], $this->getRequest()->getControllerName(), $this->getRequest()->getActionName())) {
$this->_redirect('/error/error/');
}
}
public function getUser() {
Zend_Session::start();
$namespace = new Zend_Session_Namespace('Zend_Auth');
if($namespace->storage) {
$user['id'] = $namespace->storage->id;
$user['username'] = $namespace->storage->username;
$user['name'] = $namespace->storage->name;
$user['group'] = $namespace->storage->group;
return $user;
}
else {
return array('id' => '0','username' => 'Guest','name' => '','group' => 'guest');
}
}
}
Source: https://habr.com/ru/post/39577/
All Articles