1 <?php declare(strict_types=1);
61 return (
new static())->tos->getStatus();
69 return $this->tos->getStatus();
78 $entity = $this->
getEntityFactory()->getByName(
'ilTermsOfServiceAcceptanceEntity');
79 $databaseGateway = $this->
getDataGatewayFactory()->getByName(
'ilTermsOfServiceAcceptanceDatabaseGateway');
81 $databaseGateway->deleteAcceptanceHistoryByUser($entity->withUserId($userId));
91 $entity = $this->
getEntityFactory()->getByName(
'ilTermsOfServiceAcceptanceEntity');
92 $databaseGateway = $this->
getDataGatewayFactory()->getByName(
'ilTermsOfServiceAcceptanceDatabaseGateway');
94 return $databaseGateway->loadCurrentAcceptanceOfUser($entity->withUserId((
int) $user->
getId()));
104 $entity = $this->
getEntityFactory()->getByName(
'ilTermsOfServiceAcceptanceEntity');
105 $databaseGateway = $this->
getDataGatewayFactory()->getByName(
'ilTermsOfServiceAcceptanceDatabaseGateway');
107 return $databaseGateway->loadById($entity->withId($id));
118 $entity = $this->
getEntityFactory()->getByName(
'ilTermsOfServiceAcceptanceEntity');
119 $databaseGateway = $this->
getDataGatewayFactory()->getByName(
'ilTermsOfServiceAcceptanceDatabaseGateway');
122 ->withUserId((
int) $user->
getId())
123 ->withTimestamp(time())
124 ->withText((
string) $document->
content())
125 ->withHash(md5($document->
content()))
126 ->withDocumentId((
int) $document->
id())
127 ->withTitle((
string) $document->
title());
130 $entity = $entity->withSerializedCriteria($criteriaBag->toJson());
132 $databaseGateway->trackAcceptance($entity);
158 (int) $user->
getId() > 0
169 $logger->
debug(sprintf(
170 'Checking reevaluation of Terms of Service for user "%s" (id: %s) ...',
176 $logger->
debug(sprintf(
177 'Terms of Service disabled, resigning not required ...' 183 $logger->
debug(sprintf(
184 'User is not included for Terms of Service acceptance, resigning not required ...' 189 if (!$this->tos->shouldReevaluateOnLogin()) {
190 $logger->
debug(sprintf(
191 'Reevaluation of documents is not enabled, resigning not required ...' 197 $logger->
debug(sprintf(
198 'Terms of Service currently not accepted by user, resigning not required ...' 203 $evaluator = $this->termsOfServiceEvaluation->withContextUser($user);
204 if (!$evaluator->hasDocument()) {
205 $logger->
debug(sprintf(
206 'No signable Terms of Service document found, resigning not required ...' 212 if (!($entity->getId() > 0)) {
213 $logger->
debug(sprintf(
214 'No signed Terms of Service document found, resigning not required ...' 222 $this->criterionTypeFactory
225 if ($evaluator->evaluateDocument($historizedDocument)) {
226 $logger->
debug(sprintf(
227 'Current user values do still match historized criteria, resigning not required ...' 232 $logger->
debug(sprintf(
233 'Current user values do not match historized criteria, resigning required ...' Class ilTermsOfServiceEntityFactory.
getLogin()
get login / username public
deleteAcceptanceHistoryByUser(int $userId)
const SYSTEM_USER_ID
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
isIncludedUser(ilObjUser $user)
hasToResignAcceptance(ilObjUser $user, ilLogger $logger)
Interface ilTermsOfServiceDocumentEvaluation.
Class ilTermsOfServiceHistorizedDocument.
debug($a_message, $a_context=array())
setAgreeDate($a_str)
set date the user account was accepted by the user nullindicates that the user has not accepted his a...
getAgreeDate()
get the date when the user accepted the user agreement public
writeAccepted()
write accept date of user agreement to db
Class ilTermsOfServiceDataGatewayFactory.
getId()
get object id public
Class ilTermsOfServiceAcceptanceHistoryCriteriaBag.
__construct(ilTermsOfServiceDataGatewayFactory $dataGatewayFactory=null, ilTermsOfServiceDocumentEvaluation $termsOfServiceEvaluation=null, ilTermsOfServiceCriterionTypeFactoryInterface $criterionTypeFactory=null, ilObjTermsOfService $tos=null)
ilTermsOfServiceHelper constructor.
resetAcceptance(ilObjUser $user)
getCurrentAcceptanceForUser(ilObjUser $user)
$termsOfServiceEvaluation
trackAcceptance(ilObjUser $user, ilTermsOfServiceSignableDocument $document)
Class ilTermsOfServiceHelper.
Class ilTermsOfServiceAcceptanceEntity.
Interface ilTermsOfServiceSignableDocument.
Class ilObjTermsOfService.
Component logger with individual log levels by component id.
update()
update object in db
hasToAcceptTermsOfServiceInSession($status=null)
Interface ilTermsOfServiceCriterionTypeFactoryInterface.