Ejemplo n.º 1
0
 if (!$login_user_use_idst) {
     $username = '******' . $login_user;
     $user_info = $user_manager->getUser(false, $username);
 } else {
     // use idst instead of username
     $user_info = $user_manager->getUser($login_user);
     if (!empty($user_info)) {
         $username = $user_info[ACL_INFO_USERID];
     }
 }
 if ($user_info != false) {
     $du = new DoceboUser($username, 'public_area');
     Lang::set($du->preference->getLanguage());
     $du->setLastEnter(date("Y-m-d H:i:s"));
     $_SESSION['user_enter_mark'] = time();
     $du->loadUserSectionST();
     $du->SaveInSession();
     $GLOBALS['current_user'] = $du;
     $id_course = Get::req('id_course', DOTY_INT, 0);
     $next_action = Get::req('act', DOTY_STRING, 'none');
     $id_item = Get::req('id_item', DOTY_INT, '');
     $chapter = Get::req('chapter', DOTY_MIXED, false);
     if ($id_course) {
         // if we have a id_course setted we will log the user into the course,
         // if no specific action are required we will redirect the user into the first page
         // otherwise we will continue to another option
         require_once _lms_ . '/lib/lib.course.php';
         logIntoCourse($id_course, $next_action == false || $next_action == 'none' ? true : false);
         // specific action required
         switch ($next_action) {
             case "playsco":
Ejemplo n.º 2
0
 /**
  * static public function for load user from session
  * @param string $prefix optional prefix for session publiciables
  * @return mixed DoceboUser instance of logged in user if found user in session
  *				 FALSE otherwise
  **/
 public static function &createDoceboUserFromSession($prefix = 'base')
 {
     if (!isset($_SESSION['user_enter_time'])) {
         $_SESSION['user_enter_time'] = date('Y-m-d H:i:s');
     }
     if (isset($_SESSION[$prefix . '_username'])) {
         $du = new DoceboUser($_SESSION[$prefix . '_username'], $prefix);
         if (isset($_SESSION['user_enter_mark'])) {
             if ($_SESSION['user_enter_mark'] < time() - REFRESH_LAST_ENTER) {
                 $du->setLastEnter(date("Y-m-d H:i:s"));
                 $_SESSION['user_enter_mark'] = time();
             }
         } else {
             $du->setLastEnter(date("Y-m-d H:i:s"));
             $_SESSION['user_enter_mark'] = time();
         }
         return $du;
     } else {
         // rest auth
         if (Get::sett('use_rest_api') != 'off') {
             require_once _base_ . '/api/lib/lib.rest.php';
             if (Get::sett('rest_auth_method') == _REST_AUTH_TOKEN) {
                 //require_once(_base_.'/lib/lib.utils.php');
                 $token = Get::req('auth', DOTY_ALPHANUM, '');
                 if ($token) {
                     $id_user = RestAPI::getUserIdByToken($token);
                     if ($id_user) {
                         $user_manager = new DoceboACLManager();
                         $user_info = $user_manager->getUser($id_user, false);
                         if ($user_info != false) {
                             $username = $user_info[ACL_INFO_USERID];
                             $du = new DoceboUser($username, $prefix);
                             $_SESSION['last_enter'] = $user_info[ACL_INFO_LASTENTER];
                             $du->setLastEnter(date("Y-m-d H:i:s"));
                             $_SESSION['user_enter_mark'] = time();
                             $du->loadUserSectionST();
                             $du->SaveInSession();
                             return $du;
                         }
                     }
                 }
             }
         }
         // kerberos and similar auth
         if (Get::sett('auth_kerberos') == 'on') {
             if (isset($_SERVER['REMOTE_USER'])) {
                 // extract username
                 $username = addslashes(substr($_SERVER['REMOTE_USER'], 0, strpos($_SERVER['REMOTE_USER'], '@')));
                 $user_manager = new DoceboACLManager();
                 $user_info = $user_manager->getUser(false, $username);
                 if ($user_info != false) {
                     $du = new DoceboUser($username, $prefix);
                     $du->setLastEnter(date("Y-m-d H:i:s"));
                     $_SESSION['user_enter_mark'] = time();
                     $du->loadUserSectionST();
                     $du->SaveInSession();
                     return $du;
                 }
             }
         }
         $du = new DoceboUser('/Anonymous', $prefix);
         return $du;
     }
 }