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