216 $DIC->database()->update(
220 'ref_id' => array(
'integer', $this->
getRefId()),
221 'obj_id' => array(
'integer', $this->
getObjId()),
222 'usr_id' => array(
'integer', $this->
getUsrId()),
223 'lrs_type_id' => array(
'integer', $this->
getLrsTypeId()),
229 'token' => array(
'text', $this->
getToken()),
237 $ilDB = $DIC->database();
242 'token' => array(
'text', $a_token),
243 'valid_until' => array(
'timestamp', $a_time),
244 'ref_id' => array(
'integer',
$refId),
245 'obj_id' => array(
'integer',
$objId),
246 'usr_id' => array(
'integer', $usrId),
247 'lrs_type_id' => array(
'integer', $lrsTypeId)
257 $ilDB = $DIC->database();
260 DELETE FROM " . self::DB_TABLE_NAME .
" 261 WHERE obj_id = %s AND usr_id = %s 270 $ilDB = $DIC->database();
273 DELETE FROM " . self::DB_TABLE_NAME .
" 274 WHERE obj_id = %s AND ref_id = %s AND usr_id = %s 280 public function delete()
283 $ilDB = $DIC->database();
286 DELETE FROM " . self::DB_TABLE_NAME .
" 287 WHERE obj_id = %s AND ref_id = %s AND usr_id = %s 296 $ilDB = $DIC->database();
298 $query =
"DELETE FROM " . self::DB_TABLE_NAME .
" WHERE valid_until < CURRENT_TIMESTAMP";
306 $ilDB = $DIC->database();
308 $query =
"SELECT CURRENT_TIMESTAMP";
312 return $row[
'CURRENT_TIMESTAMP'];
317 return (
new \Ramsey\Uuid\UuidFactory())->uuid4()->toString();
325 $nowTimeDT = self::selectCurrentTimestamp();
330 $newTimeTS = $nowTimeTS + $seconds;
337 $tokenObject = self::getInstanceByObjIdAndRefIdAndUsrId(
$objId,
$refId, $usrId,
false);
339 $tokenObject->update();
341 $token = $tokenObject->getToken();
343 $token = self::createToken();
349 self::deleteExpiredTokens();
364 SELECT * FROM " . self::DB_TABLE_NAME .
" 365 WHERE token = %s AND valid_until > CURRENT_TIMESTAMP 370 while ($row = $DIC->database()->fetchAssoc(
$res)) {
371 $tokenObject =
new self();
372 $tokenObject->setToken(
$token);
373 $tokenObject->setValidUntil($row[
'valid_until']);
374 $tokenObject->setUsrId($row[
'usr_id']);
375 $tokenObject->setObjId($row[
'obj_id']);
376 $tokenObject->setRefId($row[
'ref_id']);
377 $tokenObject->setLrsTypeId($row[
'lrs_type_id']);
378 $tokenObject->setCmi5Session($row[
'cmi5_session']);
379 $tokenObject->setReturnedForCmi5Session($row[
'returned_for_cmi5_session']);
380 $tokenObject->setCmi5SessionData($row[
'cmi5_session_data']);
397 $ilDB = $DIC->database();
399 $query =
"SELECT * FROM " . self::DB_TABLE_NAME .
" WHERE obj_id = %s AND usr_id = %s";
402 $query .=
" AND valid_until > CURRENT_TIMESTAMP";
410 $tokenObject =
new self();
411 $tokenObject->setToken($row[
'token']);
412 $tokenObject->setValidUntil($row[
'valid_until']);
413 $tokenObject->setUsrId($row[
'usr_id']);
414 $tokenObject->setObjId($row[
'obj_id']);
415 $tokenObject->setRefId($row[
'ref_id']);
416 $tokenObject->setLrsTypeId($row[
'lrs_type_id']);
417 $tokenObject->setCmi5Session($row[
'cmi5_session']);
418 $tokenObject->setReturnedForCmi5Session($row[
'returned_for_cmi5_session']);
419 $tokenObject->setCmi5SessionData($row[
'cmi5_session_data']);
437 $ilDB = $DIC->database();
439 $query =
"SELECT * FROM " . self::DB_TABLE_NAME .
" WHERE obj_id = %s AND ref_id = %s AND usr_id = %s";
442 $query .=
" AND valid_until > CURRENT_TIMESTAMP";
450 $tokenObject =
new self();
451 $tokenObject->setToken($row[
'token']);
452 $tokenObject->setValidUntil($row[
'valid_until']);
453 $tokenObject->setUsrId($row[
'usr_id']);
454 $tokenObject->setObjId($row[
'obj_id']);
455 $tokenObject->setRefId($row[
'ref_id']);
456 $tokenObject->setLrsTypeId($row[
'lrs_type_id']);
457 $tokenObject->setCmi5Session($row[
'cmi5_session']);
458 $tokenObject->setReturnedForCmi5Session($row[
'returned_for_cmi5_session']);
459 $tokenObject->setCmi5SessionData($row[
'cmi5_session_data']);
487 $ilDB = $DIC->database();
489 $query =
"SELECT cmi5_session FROM " . self::DB_TABLE_NAME .
" WHERE usr_id = %s AND obj_id = %s";
494 $query =
"SELECT cmi5_session FROM " . self::DB_TABLE_NAME .
" WHERE usr_id = %s AND obj_id = %s AND ref_id = %s";
500 if ($row && $row[
'cmi5_session'] !=
'')
502 return $row[
'cmi5_session'];
504 throw new ilCmiXapiException(
'no valid cmi5_session found for: ' . $objId .
'/' . $usrId);
513 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()