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.
		
		
		
		
		
			
		
			
				
					
					
						
							103 lines
						
					
					
						
							3.3 KiB
						
					
					
				
			
		
		
	
	
							103 lines
						
					
					
						
							3.3 KiB
						
					
					
				<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * Manage user api keys
 | 
						|
 *
 | 
						|
 * @license see /license.txt
 | 
						|
 * @author Laurent Opprecht <laurent@opprecht.info> for the Univesity of Geneva
 | 
						|
 */
 | 
						|
class UserApiKeyManager
 | 
						|
{
 | 
						|
 | 
						|
    /**
 | 
						|
     * The name of the default service.
 | 
						|
     * 
 | 
						|
     * @return string 
 | 
						|
     */
 | 
						|
    public static function default_service()
 | 
						|
    {
 | 
						|
        return 'chamilo';
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     *  
 | 
						|
     */
 | 
						|
    public static function end_of_time()
 | 
						|
    {
 | 
						|
        $time = 2147483647; //mysql int max value
 | 
						|
    }
 | 
						|
 | 
						|
    public static function get_by_id($id)
 | 
						|
    {
 | 
						|
        $table = Database::get_main_table(TABLE_MAIN_USER_API_KEY);
 | 
						|
        $sql = "SELECT * FROM $table WHERE id=$id";
 | 
						|
        $res = Database::query($sql);
 | 
						|
        if (Database::num_rows($res) < 1) {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
        $result = Database::fetch_array($res, 'ASSOC');
 | 
						|
        return $result;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     *
 | 
						|
     * @param int $duration in seconds
 | 
						|
     * @param int $user_id
 | 
						|
     * @param string $api_service
 | 
						|
     * @param string $api_end_point
 | 
						|
     * @return AccessToken 
 | 
						|
     */
 | 
						|
    public static function create_temp_token($api_service = null, $duration = 60, $user_id = null, $api_end_point = null)
 | 
						|
    {
 | 
						|
        $time = time();
 | 
						|
        $validity_start_date = $time;
 | 
						|
        $validity_end_date = $time + $duration;
 | 
						|
        return self::create_token($user_id, $api_key = null, $api_service, $api_end_point, $validity_start_date, $validity_end_date);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     *
 | 
						|
     * @param int $user_id
 | 
						|
     * @param string $api_key
 | 
						|
     * @param string $api_service
 | 
						|
     * @param string $api_end_point
 | 
						|
     * @param int $validity_start_date
 | 
						|
     * @param int $validity_end_date
 | 
						|
     * @param string $description
 | 
						|
     * @return AccessToken 
 | 
						|
     */
 | 
						|
    public static function create_token($user_id = null, $api_key = null, $api_service = null, $api_end_point = null, $validity_start_date = null, $validity_end_date = null, $description = '')
 | 
						|
    {
 | 
						|
        $time = time();
 | 
						|
        $user_id = $user_id ? $user_id : Chamilo::user()->user_id();
 | 
						|
        $api_key = $api_key ? $api_key : uniqid('', true);
 | 
						|
        $api_service = $api_service ? $api_service : self::default_service();
 | 
						|
        $api_end_point = $api_end_point ? $api_end_point : '';
 | 
						|
        $validity_start_date = $validity_start_date ? $validity_start_date : $time;
 | 
						|
        $validity_end_date = $validity_end_date ? $validity_end_date : self::end_of_time();
 | 
						|
        $created_date = $time;
 | 
						|
 | 
						|
        $user_id = (int) $user_id;
 | 
						|
        $api_key = Database::escape_string($api_key);
 | 
						|
        $api_service = Database::escape_string($api_service);
 | 
						|
        $api_end_point = Database::escape_string($api_end_point);
 | 
						|
        $validity_start_date = date('Y-m-d H:i:s', $validity_start_date);
 | 
						|
        $validity_end_date = date('Y-m-d H:i:s', $validity_end_date);
 | 
						|
        $created_date = date('Y-m-d H:i:s', $created_date);
 | 
						|
 | 
						|
        $values = array();
 | 
						|
        $values['user_id'] = $user_id;
 | 
						|
        $values['api_key'] = $api_key;
 | 
						|
        $values['api_service'] = $api_service;
 | 
						|
        $values['api_end_point'] = $api_end_point;
 | 
						|
        $values['validity_start_date'] = $validity_start_date;
 | 
						|
        $values['validity_end_date'] = $validity_end_date;
 | 
						|
        $values['created_date'] = $created_date;
 | 
						|
 | 
						|
        $table = Database::get_main_table(TABLE_MAIN_USER_API_KEY);
 | 
						|
 | 
						|
        $id = Database::insert($table, $values);
 | 
						|
        return AccessToken::create($id, $user_id, $api_key);
 | 
						|
    }
 | 
						|
 | 
						|
} |