Actualización
This commit is contained in:
101
main/inc/lib/user_api_key_manager.class.php
Normal file
101
main/inc/lib/user_api_key_manager.class.php
Normal file
@@ -0,0 +1,101 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user