BxBaseFormLogin.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
  4. * CC-BY License - http://creativecommons.org/licenses/by/3.0/
  5. *
  6. * @defgroup DolphinCore Dolphin Core
  7. * @{
  8. */
  9. bx_import('BxTemplFormView');
  10. /**
  11. * Login Form.
  12. */
  13. class BxBaseFormLogin extends BxTemplFormView
  14. {
  15. protected $_iRole = BX_DOL_ROLE_MEMBER;
  16. public function __construct($aInfo, $oTemplate)
  17. {
  18. parent::__construct($aInfo, $oTemplate);
  19. $aNoRelocatePages = array('forgot-password', 'login', 'create-account', 'logout');
  20. $sRelocate = bx_process_input(bx_get('relocate'));
  21. if (!$sRelocate && isset($_SERVER['HTTP_REFERER']) && 0 === mb_stripos($_SERVER['HTTP_REFERER'], BX_DOL_URL_ROOT)) {
  22. $sRelocate = $_SERVER['HTTP_REFERER'];
  23. foreach ($aNoRelocatePages as $s) {
  24. if (false !== mb_stripos($_SERVER['HTTP_REFERER'], $s)) {
  25. $sRelocate = BX_DOL_URL_ROOT . 'member.php';
  26. break;
  27. }
  28. }
  29. }
  30. $this->aInputs['relocate']['value'] = $sRelocate ? $sRelocate : BX_DOL_URL_ROOT . 'member.php';
  31. }
  32. function isValid ()
  33. {
  34. if (!parent::isValid ())
  35. return false;
  36. $sErrorString = bx_check_password($this->getCleanValue('ID'), $this->getCleanValue('Password'), $this->getRole());
  37. $this->_setCustomError ($sErrorString);
  38. return $sErrorString ? false : true;
  39. }
  40. protected function genCustomInputSubmitText ($aInput)
  41. {
  42. bx_import('BxDolPermalinks');
  43. return '<div class="bx-form-right-line-aligned">
  44. <a href="' . BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=forgot-password') . '">' . _t("_sys_txt_forgot_pasword") . '</a>
  45. </div>
  46. <div class="clear_both"></div>';
  47. }
  48. public function getRole()
  49. {
  50. return $this->_iRole;
  51. }
  52. public function setRole ($iRole)
  53. {
  54. $this->_iRole = $iRole == BX_DOL_ROLE_ADMIN ? BX_DOL_ROLE_ADMIN : BX_DOL_ROLE_MEMBER;
  55. }
  56. public function getLoginError ()
  57. {
  58. return isset($this->aInputs['ID']['error']) ? $this->aInputs['ID']['error'] : '';
  59. }
  60. protected function _setCustomError ($s)
  61. {
  62. $this->aInputs['ID']['error'] = $s;
  63. }
  64. }
  65. /** @} */