You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							185 lines
						
					
					
						
							3.9 KiB
						
					
					
				
			
		
		
	
	
							185 lines
						
					
					
						
							3.9 KiB
						
					
					
				<?php
 | 
						|
 | 
						|
use \ChamiloSession as Session;
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
 * Wrapper for the current user - i.e. the logged in user. Provide access
 | 
						|
 * to the current user's data.
 | 
						|
 *
 | 
						|
 * @license see /license.txt
 | 
						|
 * @author Laurent Opprecht <laurent@opprecht.info> for the Univesity of Geneva
 | 
						|
 */
 | 
						|
class CurrentUser
 | 
						|
{
 | 
						|
 | 
						|
    /**
 | 
						|
     *
 | 
						|
     * @return CurrentUser 
 | 
						|
     */
 | 
						|
    public static function instance()
 | 
						|
    {
 | 
						|
        static $result = null;
 | 
						|
        if (empty($result)) {
 | 
						|
            $result = new self();
 | 
						|
        }
 | 
						|
        return $result;
 | 
						|
    }
 | 
						|
 | 
						|
    protected function __construct()
 | 
						|
    {
 | 
						|
        ;
 | 
						|
    }
 | 
						|
 | 
						|
    public function data()
 | 
						|
    {
 | 
						|
        global $_user;
 | 
						|
        return $_user;
 | 
						|
        //return Session::read('_user');
 | 
						|
    }
 | 
						|
 | 
						|
    public function is_anonymous()
 | 
						|
    {
 | 
						|
        return api_is_anonymous();
 | 
						|
    }
 | 
						|
 | 
						|
    public function first_name()
 | 
						|
    {
 | 
						|
        return $this->get('firstName');
 | 
						|
    }
 | 
						|
 | 
						|
    public function last_name()
 | 
						|
    {
 | 
						|
        return $this->get('lastName');
 | 
						|
    }
 | 
						|
 | 
						|
    public function email()
 | 
						|
    {
 | 
						|
        return $this->get('mail');
 | 
						|
    }
 | 
						|
 | 
						|
    public function last_login()
 | 
						|
    {
 | 
						|
        return $this->get('lastLogin');
 | 
						|
    }
 | 
						|
 | 
						|
    public function official_code()
 | 
						|
    {
 | 
						|
        return $this->get('official_code');
 | 
						|
    }
 | 
						|
 | 
						|
    public function picture_uri()
 | 
						|
    {
 | 
						|
        return $this->get('picture_uri');
 | 
						|
    }
 | 
						|
 | 
						|
    public function user_id()
 | 
						|
    {
 | 
						|
        return (int) $this->get('user_id');
 | 
						|
    }
 | 
						|
 | 
						|
    public function language()
 | 
						|
    {
 | 
						|
        return $this->get('language');
 | 
						|
    }
 | 
						|
 | 
						|
    public function auth_source()
 | 
						|
    {
 | 
						|
        return $this->get('auth_source');
 | 
						|
    }
 | 
						|
 | 
						|
    public function theme()
 | 
						|
    {
 | 
						|
        return $this->get('theme');
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns true if user is a platform administrator, false otherwise.
 | 
						|
     * 
 | 
						|
     * @return boolean 
 | 
						|
     * @see UserManager::is_admin(user_id) for user-id specific function.
 | 
						|
     */
 | 
						|
    public function is_platform_admin()
 | 
						|
    {
 | 
						|
        return (bool) Session::read('is_platformAdmin', false);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns true if user is a session administrator, false otherwise.
 | 
						|
     * 
 | 
						|
     * @return boolean 
 | 
						|
     */
 | 
						|
    public function is_session_admin($allow_sessions_admins = false)
 | 
						|
    {
 | 
						|
        global $_user;
 | 
						|
        return (bool) $_user['status'] == SESSIONADMIN;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns true if the current user is allowed to create courses, false otherwise.
 | 
						|
     * 
 | 
						|
     * @return boolean 
 | 
						|
     * false otherwise.
 | 
						|
     */
 | 
						|
    public function is_allowed_to_create_course()
 | 
						|
    {
 | 
						|
        return (bool) Session::read('is_allowedCreateCourse', false);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns true if the current user is a course administrator for the current course, false otherwise.
 | 
						|
     * 
 | 
						|
     * @return boolean
 | 
						|
     */
 | 
						|
    public function is_course_admin()
 | 
						|
    {
 | 
						|
        return (bool) Session::read('is_courseAdmin', false);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns true if the current user is a course member of the current course, false otherwise.
 | 
						|
     * 
 | 
						|
     * @return bool
 | 
						|
     */
 | 
						|
    public function is_course_member()
 | 
						|
    {
 | 
						|
        return (bool) Session::read('is_courseMember', false);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns true if the current user is allowed in the current course, false otherwise.
 | 
						|
     * 
 | 
						|
     * @return bool
 | 
						|
     */
 | 
						|
    public function is_allowed_in_course()
 | 
						|
    {
 | 
						|
        return (bool) Session::read('is_allowed_in_course', false);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns true if the current user is a course coach for the current course, false otherwise.
 | 
						|
     * 
 | 
						|
     * @return bool
 | 
						|
     */
 | 
						|
    public function is_course_coach()
 | 
						|
    {
 | 
						|
        return (bool) Session::read('is_courseCoach', false);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Returns true if the  current user is a course tutor for the current course, false otherwise.
 | 
						|
     * 
 | 
						|
     * @return bool
 | 
						|
     */
 | 
						|
    public function is_course_tutor()
 | 
						|
    {
 | 
						|
        return (bool) Session::read('is_courseTutor', false);
 | 
						|
    }
 | 
						|
 | 
						|
    public function get($name, $default = false)
 | 
						|
    {
 | 
						|
        $data = $this->data();
 | 
						|
        return isset($data[$name]) ? $data[$name] : $default;
 | 
						|
    }
 | 
						|
 | 
						|
} |