ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilTermsOfServiceHelper.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2012 ILIAS open source, Extended GPL, see docs/LICENSE */
3
9{
13 public static function isEnabled()
14 {
15 global $DIC;
16
17 return (bool)$DIC['ilSetting']->get('tos_status', 0);
18 }
19
23 public static function setStatus($status)
24 {
25 global $DIC;
26
27 $DIC['ilSetting']->set('tos_status', (int)$status);
28 }
29
33 public static function deleteAcceptanceHistoryByUser($usr_id)
34 {
35 $entity = self::getEntityFactory()->getByName('ilTermsOfServiceAcceptanceEntity');
36 $data_gateway = self::getDataGatewayFactory()->getByName('ilTermsOfServiceAcceptanceDatabaseGateway');
37 $entity->setUserId($usr_id);
38 $data_gateway->deleteAcceptanceHistoryByUser($entity);
39 }
40
45 public static function getCurrentAcceptanceForUser(ilObjUser $user)
46 {
47 $entity = self::getEntityFactory()->getByName('ilTermsOfServiceAcceptanceEntity');
48 $data_gateway = self::getDataGatewayFactory()->getByName('ilTermsOfServiceAcceptanceDatabaseGateway');
49 $entity->setUserId($user->getId());
50 return $data_gateway->loadCurrentAcceptanceOfUser($entity);
51 }
52
57 public static function getById($id)
58 {
59 $entity = self::getEntityFactory()->getByName('ilTermsOfServiceAcceptanceEntity');
60 $data_gateway = self::getDataGatewayFactory()->getByName('ilTermsOfServiceAcceptanceDatabaseGateway');
61 $entity->setId($id);
62 return $data_gateway->loadById($entity);
63 }
64
69 public static function trackAcceptance(ilObjUser $user, ilTermsOfServiceSignableDocument $document)
70 {
71 if(self::isEnabled() && $document->exists())
72 {
73 $entity = self::getEntityFactory()->getByName('ilTermsOfServiceAcceptanceEntity');
74 $data_gateway = self::getDataGatewayFactory()->getByName('ilTermsOfServiceAcceptanceDatabaseGateway');
75 $entity->setUserId($user->getId());
76 $entity->setTimestamp(time());
77 $entity->setIso2LanguageCode($document->getIso2LanguageCode());
78 $entity->setSource($document->getSource());
79 $entity->setSourceType($document->getSourceType());
80 $entity->setText($document->getContent());
81 $entity->setHash(md5($document->getContent()));
82 $data_gateway->trackAcceptance($entity);
83
84 $user->writeAccepted(); // <- Has to be refactored in future releases
85
87 }
88 }
89
93 private static function getEntityFactory()
94 {
95 require_once 'Services/TermsOfService/classes/class.ilTermsOfServiceEntityFactory.php';
97 }
98
102 private static function getDataGatewayFactory()
103 {
104 global $DIC;
105
106 require_once 'Services/TermsOfService/classes/class.ilTermsOfServiceDataGatewayFactory.php';
107 $factory = new ilTermsOfServiceDataGatewayFactory();
108 $factory->setDatabaseAdapter($DIC['ilDB']);
109 return $factory;
110 }
111}
An exception for terminatinating execution or to throw for unit testing.
writeAccepted()
write accept date of user agreement to db
hasToAcceptTermsOfServiceInSession($status=null)
getId()
get object id @access public
static trackAcceptance(ilObjUser $user, ilTermsOfServiceSignableDocument $document)
static getCurrentAcceptanceForUser(ilObjUser $user)
global $DIC