Witam,
mam w aplikacji panel logowania wszystko ładnie działało na localhoscie ale po wgraniu na serwer nazwa dostaje error.
Kod
Nie masz dostÄpu do tej czÄĹci witryny!
Fatal error: Uncaught exception 'Zend_Acl_Role_Registry_Exception' with message 'Role 'Administrator' not found' in /home/misiu/ftp/cms/library/Zend/Acl/Role/Registry.php:132 Stack trace: #0 /home/misiu/ftp/cms/library/Zend/Acl.php(837): Zend_Acl_Role_Registry->get('Administrator') #1 /home/misiu/ftp/cms/application/plugin/Acl.php(70): Zend_Acl->isAllowed('Administrator', 'default:error', 'error') #2 /home/misiu/ftp/cms/library/Zend/Controller/Plugin/Broker.php(309): Plugin_Acl->preDispatch(Object(Zend_Controller_Request_Http)) #3 /home/misiu/ftp/cms/library/Zend/Controller/Front.php(941): Zend_Controller_Plugin_Broker->preDispatch(Object(Zend_Controller_Request_Http)) #4 /home/misiu/ftp/cms/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch() #5 /home/misiu/ftp/cms/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() #6 /home/misiu/ftp/cms/public/index.php(26): Zend_Application->run() #7 {main} Next exception 'Zend_Controller_Exception' with message 'Role 'Adm in /home/misiu/ftp/cms/library/Zend/Controller/Plugin/Broker.php on line 312
Acl.php
<?php
class Plugin_Acl extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$acl = new Zend_Acl();
$acl->addRole('guest');
$acl->addRole('user', 'guest');
$acl->addRole('administrator');
$acl->addResource('default:index');
$acl->addResource('default:index2');
$acl->addResource('default:contact');
$acl->addResource('default:test');
$acl->addResource('default:error');
$acl->addResource('default:registration');
$acl->addResource('default:activation');
$acl->addResource('default');
$acl->addResource('content:index');
$acl->addResource('content:admin');
$acl->addResource('gallery:index');
$acl->addResource('gallery:admin');
$acl->addResource('admin:index');
$acl->addResource('admin:admin');
$acl->addResource('admin:user');
$acl->addResource('admin:registration');
$acl->addResource('admin:Articles');
$acl->addResource('admin:addarticle');
$acl->addResource('admin:deletearticle');
$acl->addResource('admin:editarticle');
$acl->addResource('admin:map');
$acl->addResource('admin:foto');
$acl->addResource('admin:upload');
$acl->addResource('admin');
$acl->allow('guest', 'admin:Articles');
$acl->allow('guest', 'default');
$acl->allow('guest', 'default:index');
$acl->allow('guest', 'default:index2');
$acl->allow('guest', 'default:error');
$acl->allow('guest', 'default:registration');
$acl->allow('guest', 'default:activation');
$acl->allow('guest', 'default:test');
//$acl->allow('guest', 'admin');
$acl->allow('guest', 'admin:registration');
$acl->allow('guest', 'admin:index', 'index');
$acl->allow('guest', 'admin:index', 'login');
$acl->allow('guest', 'default:index', 'register');
$acl->allow('guest', 'default:error');
$acl->allow('administrator');
// /* Użytkownik */
$user = Zend_Auth::getInstance()->getIdentity();
if (null === $user) {
$role = 'guest';
} else {
$role = $user->role;
}
/* Czy użytkownik ma prawo dostępu? */
if (!$acl->isAllowed($role, $request->getModuleName('admin') . ':'
. $request->getControllerName('user'), $request->getActionName('login'))) {
print ('Nie masz dostępu do tej części witryny!'); }
$auth = Zend_Auth::getInstance();
if($auth->hasIdentity()) {
$identity = $auth->getIdentity();
}else{
$role = 'guest';
}
$module = $request->module;
$controller = $request->controller;
$action = $request->action;
if (!$acl->isAllowed($role, $module, $controller, $action)) {
if ($role == 'guest') {
$request->setModuleName('admin');
$request->setControllerName('user');
$request->setActionName('login');
} else {
$request->setModuleName('admin');
$request->setControllerName('error');
$request->setActionName('noauth');
}
}
}
}
?>
Login action Logput
public function loginAction()
{
// action body
$userForm = new Admin_Form_User();
$usersDAO = new Default_Model_Users();
$userForm->setAction('/login');
$userForm->removeElement('first_name');
$userForm->removeElement('last_name');
$userForm->removeElement('role');
if ($this->_request->isPost() && $userForm->isValid($_POST)) {
$data = $userForm->getValues();
//set up the auth adapter
// get the default db adapter
$db = Zend_Db_Table::getDefaultAdapter();
//create the auth adapter
$authAdapter = new Zend_Auth_Adapter_DbTable($db, 'users',
'username', 'password');
//set the username and password
$authAdapter->setIdentity($data['username']);
$authAdapter->setCredential(md5($data['password'])); //authenticate
$result = $authAdapter->authenticate();
if ($result->isValid()) {
// store the username, first and last names of the user
$auth = Zend_Auth::getInstance();
$storage = $auth->getStorage();
$storage->write($authAdapter->getResultRowObject(
array('id', 'username' , 'first_name' , 'last_name', 'role')));
$user = $usersDAO->fetchRowByUser($data['username']);
// Is accout active
if(@$user->active){
return $this->_forward('index');
} else {
//print $user->active;
Zend_Auth::getInstance()->clearIdentity();
print 'Twoje konto nie zostało jeszcze aktywowane'; }
} else {
$this->view->loginMessage = "Sorry, your username or
password was incorrect";
}
}
$this->view->form = $userForm;
}
public function logoutAction()
{
// action body
$authAdapter = Zend_Auth::getInstance();
$authAdapter->clearIdentity();
}