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 = []; $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); } }