function socialConnectLogin($uid = false, $network_code = false) { require_once _base_ . '/lib/lib.usermanager.php'; $res = ''; $lang = DoceboLanguage::createInstance('login'); $user_manager = new UserManager(); if (!empty($uid) && !empty($network_code)) { session_regenerate_id(); $_SESSION['connect_social']['uid'] = $uid; $_SESSION['connect_social']['network_code'] = $network_code; } $can_connect = false; if (isset($_SESSION['connect_social']) && isset($_SESSION['connect_social']['uid']) && !empty($_SESSION['connect_social']['uid'])) { // read data from session, in case we are on the second step (login attempt) $uid = $_SESSION['connect_social']['uid']; $network_code = $_SESSION['connect_social']['network_code']; $can_connect = true; } // check form submission: if (isset($_POST['undo'])) { // go back to index Util::jump_to('index.php'); } else { if (isset($_POST['login']) && !$can_connect) { // we don't have the social uid to be connected with user account.. Util::jump_to('index.php?modname=login&op=social_connect_login&err=2'); } else { if (isset($_POST['login'])) { // login and connect account $user = DoceboUser::createDoceboUserFromLogin(Get::pReq('login_userid', DOTY_STRING), Get::pReq('login_pwd', DOTY_STRING), 'public_area'); if ($user) { DoceboUser::setupUser($user); $social = new Social(); $social->connectAccount($network_code, $uid); unset($_SESSION['connect_social']); Util::jump_to('index.php?r=lms/elearning/show'); } else { Util::jump_to('index.php?modname=login&op=social_connect_login&err=1'); } } } } switch (Get::gReq('err', DOTY_INT, 0)) { case 1: $res .= UIFeedback::error(Lang::t('_NOACCESS', 'login'), true); break; case 2: $res .= UIFeedback::error(Lang::t('_NO_SOCIAL_ACCOUNT_TO_CONNECT', 'login') . ' <a href="index.php">' . Lang::t('_TRY_AGAIN', 'login') . '</a>', true); break; } $GLOBALS['page']->add(getTitleArea($lang->def('_LOGIN'), 'login') . '<div class="std_block">' . getBackUi('index.php', $lang->def('_BACK')), 'content'); if ($can_connect) { $res .= Get::img('social/' . $network_code . '-24.png') . ' '; $res .= str_replace('[network_code]', Lang::t($network_code, 'social'), Lang::t('_YOU_ARE_CONNECTING_SOCIAL_ACCOUNT', 'social')) . " <b>" . $uid . "</b>"; } $res .= Form::openForm('scl_form', 'index.php?modname=login&op=social_connect_login') . Form::openElementSpace() . Form::getTextfield(Lang::t('_USERNAME', 'login'), 'login_userid', 'login_userid', 255) . Form::getPassword(Lang::t('_PASSWORD', 'login'), 'login_pwd', 'login_pwd', 255) . Form::closeElementSpace() . Form::openButtonSpace() . Form::getButton('login', 'login', Lang::t('_LOGIN', 'login')) . Form::getButton('undo', 'undo', Lang::t('_UNDO', 'login')) . Form::closeButtonSpace() . Form::closeForm(); $GLOBALS['page']->add($res, 'content'); // std_block $GLOBALS['page']->add('</div>', 'content'); // std_block }
//operation that is needed before loading grafiphs element, menu and so on switch ($GLOBALS['op']) { //login control case "confirm": if ($GLOBALS['modname'] == 'login') { require_once _base_ . '/lib/lib.usermanager.php'; $manager = new UserManager(); $login_data = $manager->getLoginInfo(); $manager->saveUserLoginData(); if ($login_data['userid'] != '') { if (Get::sett('ldap_used') !== 'on') { require_once _base_ . '/lib/lib.acl.php'; $acl = new DoceboACL(); $acl_man =& $acl->getACLManager(); } $GLOBALS['current_user'] =& DoceboUser::createDoceboUserFromLogin($login_data['userid'], $login_data['password'], 'public_area', $login_data['lang']); if ($GLOBALS['current_user'] === FALSE) { $GLOBALS['current_user'] =& DoceboUser::createDoceboUserFromSession('public_area'); $GLOBALS['access_fail'] = true; $GLOBALS['op'] = 'login'; Util::jump_to('../index.php?access_fail=1'); } else { $_SESSION['logged_in'] = true; //loading related ST Docebo::user()->loadUserSectionST('/lms/course/public/'); $pwd_elapsed = Docebo::user()->isPasswordElapsed(); if ($pwd_elapsed > 0) { //$GLOBALS['modname'] = 'profile'; //$GLOBALS['op'] = 'renewalpwd'; $GLOBALS['modname'] = ''; $GLOBALS['op'] = '';
$pwd_elapsed = Docebo::user()->isPasswordElapsed(); if($pwd_elapsed > 0) { Util::jump_to(Get::rel_path('lms').'/index.php'); } } } */ // NOTE: some special function switch ($GLOBALS['op']) { case "confirm": if ($GLOBALS['modname'] == 'login') { require_once _base_ . '/lib/lib.usermanager.php'; $manager = new UserManager(); $login_data = $manager->getLoginInfo(); $manager->saveUserLoginData(); $GLOBALS['current_user'] =& DoceboUser::createDoceboUserFromLogin($login_data['userid'], $login_data['password'], Get::sett('common_admin_session', 'on') == 'on' ? "public_area" : "admin_area", $login_data['lang']); if ($GLOBALS['current_user'] === FALSE) { $GLOBALS['current_user'] =& DoceboUser::createDoceboUserFromSession(Get::sett('common_admin_session', 'on') == 'on' ? "public_area" : "admin_area"); $GLOBALS['access_fail'] = true; $GLOBALS['op'] = 'login'; } else { $_SESSION['logged_in'] = true; $GLOBALS['r'] = 'adm/dashboard/show'; $GLOBALS['modname'] = ''; //loading related ST $GLOBALS['current_user']->loadUserSectionST(); $GLOBALS['current_user']->SaveInSession(); // perform other platforms login operation require_once _base_ . '/lib/lib.platform.php'; $pm =& PlatformManager::createInstance(); $pm->doCommonOperations("login");