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
  1. <?php
  2.  
  3. class Plugin_Acl extends Zend_Controller_Plugin_Abstract
  4. {
  5. public function preDispatch(Zend_Controller_Request_Abstract $request)
  6. {
  7.  
  8. $acl = new Zend_Acl();
  9. $acl->addRole('guest');
  10. $acl->addRole('user', 'guest');
  11. $acl->addRole('administrator');
  12.  
  13. $acl->addResource('default:index');
  14. $acl->addResource('default:index2');
  15. $acl->addResource('default:contact');
  16. $acl->addResource('default:test');
  17. $acl->addResource('default:error');
  18. $acl->addResource('default:registration');
  19. $acl->addResource('default:activation');
  20. $acl->addResource('default');
  21.  
  22. $acl->addResource('content:index');
  23. $acl->addResource('content:admin');
  24.  
  25. $acl->addResource('gallery:index');
  26. $acl->addResource('gallery:admin');
  27.  
  28. $acl->addResource('admin:index');
  29. $acl->addResource('admin:admin');
  30. $acl->addResource('admin:user');
  31. $acl->addResource('admin:registration');
  32. $acl->addResource('admin:Articles');
  33. $acl->addResource('admin:addarticle');
  34. $acl->addResource('admin:deletearticle');
  35. $acl->addResource('admin:editarticle');
  36. $acl->addResource('admin:map');
  37. $acl->addResource('admin:foto');
  38. $acl->addResource('admin:upload');
  39.  
  40. $acl->addResource('admin');
  41.  
  42. $acl->allow('guest', 'admin:Articles');
  43. $acl->allow('guest', 'default');
  44. $acl->allow('guest', 'default:index');
  45. $acl->allow('guest', 'default:index2');
  46. $acl->allow('guest', 'default:error');
  47. $acl->allow('guest', 'default:registration');
  48. $acl->allow('guest', 'default:activation');
  49. $acl->allow('guest', 'default:test');
  50. //$acl->allow('guest', 'admin');
  51. $acl->allow('guest', 'admin:registration');
  52.  
  53. $acl->allow('guest', 'admin:index', 'index');
  54. $acl->allow('guest', 'admin:index', 'login');
  55.  
  56. $acl->allow('guest', 'default:index', 'register');
  57. $acl->allow('guest', 'default:error');
  58. $acl->allow('administrator');
  59.  
  60. // /* Użytkownik */
  61. $user = Zend_Auth::getInstance()->getIdentity();
  62. if (null === $user) {
  63. $role = 'guest';
  64. } else {
  65. $role = $user->role;
  66. }
  67.  
  68. /* Czy użytkownik ma prawo dostępu? */
  69. if (!$acl->isAllowed($role, $request->getModuleName('admin') . ':'
  70. . $request->getControllerName('user'), $request->getActionName('login'))) {
  71. print ('Nie masz dostępu do tej części witryny!');
  72. }
  73.  
  74. $auth = Zend_Auth::getInstance();
  75. if($auth->hasIdentity()) {
  76. $identity = $auth->getIdentity();
  77. $role = strtolower($identity->role);
  78. }else{
  79. $role = 'guest';
  80. }
  81. $module = $request->module;
  82. $controller = $request->controller;
  83. $action = $request->action;
  84. if (!$acl->isAllowed($role, $module, $controller, $action)) {
  85. if ($role == 'guest') {
  86. $request->setModuleName('admin');
  87. $request->setControllerName('user');
  88. $request->setActionName('login');
  89. } else {
  90. $request->setModuleName('admin');
  91. $request->setControllerName('error');
  92. $request->setActionName('noauth');
  93. }
  94. }
  95. }
  96.  
  97. }
  98. ?>
  99.  


Login action Logput
  1. public function loginAction()
  2. {
  3. // action body
  4. $userForm = new Admin_Form_User();
  5. $usersDAO = new Default_Model_Users();
  6. $userForm->setAction('/login');
  7. $userForm->removeElement('first_name');
  8. $userForm->removeElement('last_name');
  9. $userForm->removeElement('role');
  10. if ($this->_request->isPost() && $userForm->isValid($_POST)) {
  11. $data = $userForm->getValues();
  12. //set up the auth adapter
  13. // get the default db adapter
  14. $db = Zend_Db_Table::getDefaultAdapter();
  15. //create the auth adapter
  16. $authAdapter = new Zend_Auth_Adapter_DbTable($db, 'users',
  17. 'username', 'password');
  18. //set the username and password
  19. $authAdapter->setIdentity($data['username']);
  20. $authAdapter->setCredential(md5($data['password']));
  21. //authenticate
  22. $result = $authAdapter->authenticate();
  23. if ($result->isValid()) {
  24.  
  25. // store the username, first and last names of the user
  26. $auth = Zend_Auth::getInstance();
  27. $storage = $auth->getStorage();
  28. $storage->write($authAdapter->getResultRowObject(
  29. array('id', 'username' , 'first_name' , 'last_name', 'role')));
  30.  
  31.  
  32. $user = $usersDAO->fetchRowByUser($data['username']);
  33. // Is accout active
  34. if(@$user->active){
  35. return $this->_forward('index');
  36. } else {
  37. //print $user->active;
  38. Zend_Auth::getInstance()->clearIdentity();
  39. print 'Twoje konto nie zostało jeszcze aktywowane';
  40. }
  41. } else {
  42. $this->view->loginMessage = "Sorry, your username or
  43. password was incorrect";
  44. }
  45. }
  46. $this->view->form = $userForm;
  47. }
  48.  
  49. public function logoutAction()
  50. {
  51. // action body
  52. $authAdapter = Zend_Auth::getInstance();
  53. $authAdapter->clearIdentity();
  54. }