member.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. /**
  3. * Copyright (c) UNA, Inc - https://una.io
  4. * MIT License - https://opensource.org/licenses/MIT
  5. *
  6. * @defgroup UnaCore UNA Core
  7. * @{
  8. */
  9. require_once('./inc/header.inc.php');
  10. require_once(BX_DIRECTORY_PATH_INC . "design.inc.php");
  11. bx_import('BxDolLanguages');
  12. if (isset($_POST['ID'])) { // login form is submitted
  13. $oForm = BxDolForm::getObjectInstance('sys_login', 'sys_login');
  14. bx_alert('account', 'before_login', 0, 0, array('form' => $oForm));
  15. $oForm->initChecker();
  16. $oForm->setRole(bx_get('role'));
  17. $bLoginSuccess = $oForm->isSubmittedAndValid();
  18. $bAjxMode = (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') ? true : false;
  19. if ($bAjxMode) {
  20. if ($bLoginSuccess) {
  21. $s = 'OK';
  22. $oAccount = BxDolAccount::getInstance(trim($oForm->getCleanValue('ID')));
  23. $aAccount = bx_login($oAccount->id(), $oForm->getRememberMe());
  24. }
  25. else {
  26. $s = $oForm->getLoginError();
  27. }
  28. if (isset($_SERVER['HTTP_ACCEPT'])) {
  29. if (false !== strpos($_SERVER['HTTP_ACCEPT'], 'application/json') || false !== strpos($_SERVER['HTTP_ACCEPT'], 'text/javascript')) {
  30. header('Content-type: application/json; charset=utf-8');
  31. echo json_encode(['res' => $s, 'form' => $oForm->getCode()]);
  32. exit;
  33. }
  34. }
  35. header('Content-type: text/html; charset=utf-8');
  36. echo $s;
  37. exit;
  38. }
  39. elseif ($bLoginSuccess) {
  40. $sId = trim($oForm->getCleanValue('ID'));
  41. $oAccount = BxDolAccount::getInstance($sId);
  42. $aAccountInfo = $oAccount->getInfo();
  43. if((getParam('sys_account_activation_2fa_enable') == 'on' && getParam('sys_sms_default') != '')
  44. && (getParam('sys_account_activation_2fa_lifetime') == 0 || (time() - $aAccountInfo['logged'] > getParam('sys_account_activation_2fa_lifetime')))) {
  45. $oSession = BxDolSession::getInstance();
  46. $oSession->setValue(BX_ACCOUNT_SESSION_KEY_FOR_2FA_LOGIN_ACCOUNT_ID, trim($oForm->getCleanValue('ID')));
  47. $oSession->setValue(BX_ACCOUNT_SESSION_KEY_FOR_2FA_LOGIN_IS_REMEMBER, $oForm->getRememberMe());
  48. header('Location: ' . BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=login-step2'));
  49. }
  50. else{
  51. $aAccount = bx_login($oAccount->id(), $oForm->getRememberMe());
  52. $sUrlRelocate = $oForm->getCleanValue('relocate');
  53. if (!$sUrlRelocate || 0 !== strncmp($sUrlRelocate, BX_DOL_URL_ROOT, strlen(BX_DOL_URL_ROOT)))
  54. $sUrlRelocate = BX_DOL_ROLE_ADMIN == $oForm->getRole() ? BX_DOL_URL_STUDIO . 'launcher.php' : BX_DOL_URL_ROOT . 'member.php';
  55. bx_alert('account', 'login_after', $oAccount->id(), false, array(
  56. 'account' => $aAccount,
  57. 'url_relocate' => &$sUrlRelocate
  58. ));
  59. BxDolTemplate::getInstance()->setPageNameIndex (BX_PAGE_TRANSITION);
  60. BxDolTemplate::getInstance()->setPageHeader (_t('_Please Wait'));
  61. BxDolTemplate::getInstance()->setPageContent ('page_main_code', MsgBox(_t('_Please Wait')));
  62. BxDolTemplate::getInstance()->setPageContent ('url_relocate', bx_html_attribute($sUrlRelocate, BX_ESCAPE_STR_QUOTE));
  63. BxDolTemplate::getInstance()->getPageCode();
  64. exit;
  65. }
  66. }
  67. }
  68. bx_require_authentication();
  69. header('Location: ' . BX_DOL_URL_ROOT);
  70. /** @} */