Guest User

Untitled

a guest
Jul 15th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. <?php
  2. class Pog_Model_AuthPlugin extends Zend_Controller_Plugin_Abstract
  3. {
  4. public function preDispatch(Zend_Controller_Request_Abstract $oRequest)
  5. {
  6. /**
  7. * Load user
  8. */
  9. $oAuth = Zend_Auth::getInstance();
  10. $oDbUsers = new Pog_Model_DbTable_Users();
  11.  
  12. if (!$oAuth->hasIdentity())
  13. {
  14. $oUser = $oDbUsers->createRow();
  15. $oUser->name = "guest";
  16. $oUser->setReadOnly(true);
  17. }
  18. else
  19. {
  20. $oUser = $oAuth->getIdentity();
  21. $oUser->setTable($oDbUsers);
  22. }
  23.  
  24. /**
  25. * Load ACL
  26. */
  27. $oAcl = new Zend_Acl();
  28. $oAcl->addRole($oUser->name);
  29.  
  30.  
  31. /**
  32. * Add current user privileges
  33. */
  34. $oPrivileges = $oUser->getPrivileges();
  35. foreach ($oPrivileges as $oPrivilege)
  36. {
  37. if (!$oAcl->has($oPrivilege->resource))
  38. $oAcl->addResource($oPrivilege->resource);
  39.  
  40. $oAcl->allow($oUser->name, $oPrivilege->resource, $oPrivilege->privilege);
  41. }
  42.  
  43.  
  44. /**
  45. * Load Navigation view helper
  46. */
  47. $oViewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
  48. $oNavigation = $oViewRenderer->view->navigation();
  49.  
  50.  
  51. /**
  52. * Add remaining Navigation resources
  53. */
  54. foreach ($oNavigation->getPages() as $oPage)
  55. {
  56. if (!is_null($oPage->getResource()) && !$oAcl->has($oPage->getResource()))
  57. $oAcl->addResource($oPage->getResource());
  58. }
  59.  
  60.  
  61. /**
  62. * Set ACL and Role
  63. */
  64. $oNavigation->setAcl($oAcl)->setRole($oUser->name);
  65.  
  66.  
  67. /**
  68. * Check if use is allowed to be here
  69. */
  70. ...MAGIC GOES HERE...
  71. }
  72. }
  73.  
  74. /**
  75. * Load Navigation view helper
  76. */
  77. $oViewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
  78. $oNavigation = $oViewRenderer->view->navigation();
  79.  
  80. /*@var $active array */
  81. $active = $oNavigation->findActive($oNavigation->getContainer());
  82.  
  83. /*@var $activePage Zend_Navigation_Page_Mvc */
  84. $activePage = $active['page'];
  85.  
  86. // example of getting page info
  87. var_dump($activePage->getLabel(), $activePage->getController(), $activePage->getAction());
  88.  
  89. $oCurrentPage = null;
  90. foreach ($oNavigation->getPages() as $oPage)
  91. {
  92. /**
  93. * Check for Current Page
  94. */
  95. if ($oPage->getController() == $oRequest->getControllerName()
  96. && $oPage->getAction() == $oRequest->getActionName())
  97. $oCurrentPage = $oPage;
  98.  
  99.  
  100. /**
  101. * Add Resource, if missing
  102. */
  103. if (!is_null($oPage->getResource()) && !$oAcl->has($oPage->getResource()))
  104. $oAcl->addResource($oPage->getResource());
  105. }
Add Comment
Please, Sign In to add comment