LoginHandler.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. abstract class catalyz_LoginHandler {
  3. abstract public function Login($login, $password, $remember);
  4. abstract public function hasAccessToToolbar();
  5. abstract public function canViewContent(ContentTreeNode $content_tree_node);
  6. function Logout() {
  7. $sf_user = sfContext::getInstance()->getUser();
  8. $sf_user->setAuthenticated(false);
  9. $sf_user->clearCredentials();
  10. $duration = time() - 3600;
  11. setcookie('Login', '', $duration, '/');
  12. setcookie('Password', '', $duration, '/');
  13. }
  14. protected function getRememberKey() {
  15. return sfConfig::get('app_permissions_remember_key');
  16. }
  17. protected function sendCreditentialCookie($login, $password) {
  18. $duration = time() + 30 * 24 * 3600;
  19. $crypt = new Encryption();
  20. $cryptedPassword = $crypt->encrypt($this->getRememberKey(), $password, strlen($password));
  21. setcookie('Login', $login, $duration, '/');
  22. setcookie('Password', $cryptedPassword, $duration, '/');
  23. }
  24. public function ForgotPassword($username) {
  25. // todo
  26. }
  27. public function ForgotLogin($name) {
  28. // todo
  29. }
  30. public function AutoLogin() {
  31. if (!empty($_COOKIE['Login']) && !empty($_COOKIE['Password'])) {
  32. $crypt = new Encryption();
  33. $clearPassword = $crypt->decrypt($this->getRememberKey(), $_COOKIE['Password']);
  34. $this->Login($_COOKIE['Login'], $clearPassword, true);
  35. }
  36. }
  37. public function hasAccessToPermsTab() {
  38. return false;
  39. }
  40. }
  41. interface ILoginHandlerPermissionAdminProvider {
  42. public function getEditPermissionTemplate();
  43. /**
  44. * ILoginHandlerPermissionAdminProvider::updateNodePermisions()
  45. *
  46. * @param Node $node
  47. * @param sfWebRequest $request
  48. * @return
  49. */
  50. public function updateNodePermisions($node, $request);
  51. }
  52. ?>