123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <?php
- namespace Shibboleth;
- use ChamiloSession as Session;
- use Database;
- class ShibbolethSession
- {
-
- public static function instance()
- {
- static $result = false;
- if (empty($result)) {
- $result = new self();
- }
- return $result;
- }
- function is_logged_in()
- {
- return isset($_SESSION['_user']['user_id']);
- }
- function user()
- {
- return $_SESSION['_user'];
- }
- function logout()
- {
- $_SESSION['_user'] = array();
- online_logout(null, false);
- }
-
- function login($uid)
- {
-
- global $_uid, $is_allowedCreateCourse, $is_platformAdmin, $_real_cid, $is_courseAdmin;
- global $is_courseMember, $is_courseTutor, $is_courseCoach, $is_allowed_in_course, $is_sessionAdmin, $_gid;
- $_uid = $uid;
-
- $user = User::store()->get_by_user_id($uid);
- if (empty($user)) {
- return;
- }
- $this->logout();
- Session::instance();
- Session::write('_uid', $_uid);
- global $_user;
- $_user = (array) $user;
- $_SESSION['_user'] = $_user;
- $_SESSION['_user']['user_id'] = $_uid;
- $_SESSION['noredirection'] = true;
-
- Event::event_login($_uid);
-
- $loginFailed = false;
- $uidReset = true;
- $gidReset = true;
- $cidReset = false;
- $mainDbName = Database :: get_main_database();
- $includePath = api_get_path(SYS_INC_PATH);
- $no_redirection = true;
- require("$includePath/local.inc.php");
- return $_user;
- }
- }
|