215 $DIC->database()->update(
219 'ref_id' => array(
'integer', $this->
getRefId()),
220 'obj_id' => array(
'integer', $this->
getObjId()),
221 'usr_id' => array(
'integer', $this->
getUsrId()),
222 'lrs_type_id' => array(
'integer', $this->
getLrsTypeId()),
228 'token' => array(
'text', $this->
getToken()),
236 $ilDB = $DIC->database();
241 'token' => array(
'text', $a_token),
242 'valid_until' => array(
'timestamp', $a_time),
243 'ref_id' => array(
'integer',
$refId),
244 'obj_id' => array(
'integer',
$objId),
245 'usr_id' => array(
'integer', $usrId),
246 'lrs_type_id' => array(
'integer', $lrsTypeId)
256 $ilDB = $DIC->database();
259 DELETE FROM " . self::DB_TABLE_NAME .
" 260 WHERE obj_id = %s AND usr_id = %s 269 $ilDB = $DIC->database();
272 DELETE FROM " . self::DB_TABLE_NAME .
" 273 WHERE obj_id = %s AND ref_id = %s AND usr_id = %s 279 public function delete()
282 $ilDB = $DIC->database();
285 DELETE FROM " . self::DB_TABLE_NAME .
" 286 WHERE obj_id = %s AND ref_id = %s AND usr_id = %s 295 $ilDB = $DIC->database();
297 $query =
"DELETE FROM " . self::DB_TABLE_NAME .
" WHERE valid_until < CURRENT_TIMESTAMP";
305 $ilDB = $DIC->database();
307 $query =
"SELECT CURRENT_TIMESTAMP";
311 return $row[
'CURRENT_TIMESTAMP'];
316 return (
new \Ramsey\Uuid\UuidFactory())->uuid4()->toString();
324 $nowTimeDT = self::selectCurrentTimestamp();
329 $newTimeTS = $nowTimeTS + $seconds;
336 $tokenObject = self::getInstanceByObjIdAndRefIdAndUsrId(
$objId,
$refId, $usrId,
false);
338 $tokenObject->update();
340 $token = $tokenObject->getToken();
342 $token = self::createToken();
348 self::deleteExpiredTokens();
363 SELECT * FROM " . self::DB_TABLE_NAME .
" 364 WHERE token = %s AND valid_until > CURRENT_TIMESTAMP 369 while ($row = $DIC->database()->fetchAssoc(
$res)) {
370 $tokenObject =
new self();
371 $tokenObject->setToken(
$token);
372 $tokenObject->setValidUntil($row[
'valid_until']);
373 $tokenObject->setUsrId($row[
'usr_id']);
374 $tokenObject->setObjId($row[
'obj_id']);
375 $tokenObject->setRefId($row[
'ref_id']);
376 $tokenObject->setLrsTypeId($row[
'lrs_type_id']);
377 $tokenObject->setCmi5Session($row[
'cmi5_session']);
378 $tokenObject->setReturnedForCmi5Session($row[
'returned_for_cmi5_session']);
379 $tokenObject->setCmi5SessionData($row[
'cmi5_session_data']);
396 $ilDB = $DIC->database();
398 $query =
"SELECT * FROM " . self::DB_TABLE_NAME .
" WHERE obj_id = %s AND usr_id = %s";
401 $query .=
" AND valid_until > CURRENT_TIMESTAMP";
409 $tokenObject =
new self();
410 $tokenObject->setToken($row[
'token']);
411 $tokenObject->setValidUntil($row[
'valid_until']);
412 $tokenObject->setUsrId($row[
'usr_id']);
413 $tokenObject->setObjId($row[
'obj_id']);
414 $tokenObject->setRefId($row[
'ref_id']);
415 $tokenObject->setLrsTypeId($row[
'lrs_type_id']);
416 $tokenObject->setCmi5Session($row[
'cmi5_session']);
417 $tokenObject->setReturnedForCmi5Session($row[
'returned_for_cmi5_session']);
418 $tokenObject->setCmi5SessionData($row[
'cmi5_session_data']);
436 $ilDB = $DIC->database();
438 $query =
"SELECT * FROM " . self::DB_TABLE_NAME .
" WHERE obj_id = %s AND ref_id = %s AND usr_id = %s";
441 $query .=
" AND valid_until > CURRENT_TIMESTAMP";
449 $tokenObject =
new self();
450 $tokenObject->setToken($row[
'token']);
451 $tokenObject->setValidUntil($row[
'valid_until']);
452 $tokenObject->setUsrId($row[
'usr_id']);
453 $tokenObject->setObjId($row[
'obj_id']);
454 $tokenObject->setRefId($row[
'ref_id']);
455 $tokenObject->setLrsTypeId($row[
'lrs_type_id']);
456 $tokenObject->setCmi5Session($row[
'cmi5_session']);
457 $tokenObject->setReturnedForCmi5Session($row[
'returned_for_cmi5_session']);
458 $tokenObject->setCmi5SessionData($row[
'cmi5_session_data']);
486 $ilDB = $DIC->database();
488 $query =
"SELECT cmi5_session FROM " . self::DB_TABLE_NAME .
" WHERE usr_id = %s AND obj_id = %s";
491 $query =
"SELECT cmi5_session FROM " . self::DB_TABLE_NAME .
" WHERE usr_id = %s AND obj_id = %s AND ref_id = %s";
497 if ($row && $row[
'cmi5_session'] !=
'') {
498 return $row[
'cmi5_session'];
500 throw new ilCmiXapiException(
'no valid cmi5_session found for: ' . $objId .
'/' . $usrId);
509 include
'data/wacsalt.php';
setCmi5SessionData($cmi5_session_data)
setValidUntil(string $valid_until)
getReturnedForCmi5Session()
static getInstanceByToken($token)
setReturnedForCmi5Session($returned_for_cmi5_session)
const OPENSSL_ENCRYPTION_METHOD
static getInstanceByObjIdAndUsrId($objId, $usrId, $checkValid=true)
foreach($_POST as $key=> $value) $res
static getCmi5SessionByUsrIdAndObjIdAndRefId(int $usrId, int $objId, $refId=null)
static deleteTokenByObjIdAndRefIdAndUsrId($objId, $refId, $usrId)
static deleteTokenByObjIdAndUsrId($objId, $usrId)
setLrsTypeId($lrs_type_id)
static fillToken($usrId, $refId, $objId, $lrsTypeId=0)
static getInstanceByObjIdAndRefIdAndUsrId($objId, $refId, $usrId, $checkValid=true)
static selectCurrentTimestamp()
setCmi5Session($cmi5_session)
$returned_for_cmi5_session
static insertToken($usrId, $refId, $objId, $lrsTypeId, $a_token, $a_time)
static deleteExpiredTokens()