catalyzViewGroupLoginHandler.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. if (!defined('CREDENTIAL_ADMINISTRATOR')) {
  3. define('CREDENTIAL_ADMINISTRATOR', 'administrator');
  4. }
  5. if (!defined('CREDENTIAL_WEBMASTER')) {
  6. define('CREDENTIAL_WEBMASTER', 'webmaster');
  7. }
  8. class catalyzViewGroupLoginHandler extends catalyz_LoginHandler implements ILoginHandlerPermissionAdminProvider {
  9. public function Login($login, $password, $remember) {
  10. try {
  11. $credentials = $this->getUserCredentials($login, $password);
  12. }
  13. catch (Exception $e) {
  14. return false;
  15. }
  16. $user = sfContext::getInstance()->getUser();
  17. $user->setAuthenticated(true);
  18. $user->addCredentials($credentials);
  19. if ($remember) {
  20. $this->sendCreditentialCookie($login, $password);
  21. }
  22. return true;
  23. }
  24. protected function getUserCredentials($login, $password) {
  25. if (!($login == sfConfig::get('app_auth_login') && $password == sfConfig::get('app_auth_password'))) {
  26. throw new Exception('Invalid credentials.');
  27. }
  28. return array(CREDENTIAL_ADMINISTRATOR, CREDENTIAL_WEBMASTER);
  29. }
  30. public function hasAccessToToolbar() {
  31. return sfContext::getInstance()->getUser()->hasCredential(CREDENTIAL_WEBMASTER);
  32. }
  33. public function hasAccessToPermsTab() {
  34. return sfContext::getInstance()->getUser()->hasCredential(CREDENTIAL_ADMINISTRATOR);
  35. }
  36. public function getEditPermissionTemplate() {
  37. return 'catalyzLoginHandlerViewGroup/edit_perms';
  38. }
  39. public function updateNodePermisions($node, $request) {
  40. $node->setPermsType($request->getParameter('perms_type'));
  41. $credentials = $request->getParameter('perms_groups');
  42. $node->setCredentials(is_array($credentials)?implode('|', array_keys($credentials)):'');
  43. }
  44. public function canViewContent(ContentTreeNode $content_tree_node) {
  45. list($perms_type, $credentials) = $content_tree_node->getPermsData();
  46. switch ($perms_type) {
  47. case Node::PERMS_ALLOWED_TO_ANYBODY:
  48. return true;
  49. case Node::PERMS_RESTRICTED:
  50. $credentials = explode('|', $credentials);
  51. $sfUser = sfContext::getInstance()->getUser();
  52. // var_dump($credentials);exit;
  53. return $sfUser->hasCredential(CREDENTIAL_WEBMASTER) || $sfUser->hasCredential($credentials, false);
  54. default:
  55. return false;
  56. } // switch
  57. }
  58. public function canContentBeSeenByAnonymous(ContentTreeNode $ContentTreeNode){
  59. list($perms_type, $credentials) = $content_tree_node->getPermsData();
  60. switch ($perms_type) {
  61. case Node::PERMS_ALLOWED_TO_ANYBODY:
  62. return true;
  63. case Node::PERMS_RESTRICTED:
  64. return FALSE;
  65. default:
  66. return false;
  67. } // switch
  68. }
  69. /**
  70. * catalyzViewGroupLoginHandler::getDefaultPermissionTemplate()
  71. *
  72. * @return
  73. */
  74. public function getDefaultPermissionTemplate()
  75. {
  76. return 'catalyzLoginHandlerViewGroup/edit_perms';
  77. }
  78. function hasPermission($perm, $default){
  79. return true;
  80. }
  81. }