ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
ilCmiXapiDelModel Class Reference

Class ilCmiXapiDelModel. More...

+ Collaboration diagram for ilCmiXapiDelModel:

Public Member Functions

 __construct ()
 
 getXapiObjIdForUser (int $userId)
 
 setXapiUserAsDeleted (int $userId)
 
 setUserAsUpdated (int $usrId)
 
 resetUpdatedXapiUser (int $usrId, int $objId)
 
 getXapiObjectsByDeletedUsers ()
 
 getXapiObjectsByUser (int $userId)
 
 getNewDeletedUsers ()
 
 deleteUserEntry ($usrId, $objId)
 
 getXapiObjectData (int $objId)
 
 getAllXapiDelObjectData ()
 
 getNewDeletedXapiObjects ()
 
 deleteXapiObjectEntry ($objId)
 
 setXapiObjAsDeleted (int $objId, int $typeId, string $actId)
 
 setXapiObjAsDeletedForUser (int $objId, int $typeId, string $actId, int $usrId)
 
 setXapiObjAsUpdated (int $objId)
 
 resetUpdatedXapiObj (int $objId)
 
 removeCmixUsersForObject (int $objId)
 
 removeCmixUsersForObjectAndUser (int $objId, int $usrId)
 

Static Public Member Functions

static init ()
 

Data Fields

const DB_TABLE_NAME = 'cmix_settings'
 
const DB_USERS_TABLE_NAME = 'cmix_users'
 
const DB_DEL_OBJ = 'cmix_del_object'
 
const DB_DEL_USERS = 'cmix_del_user'
 

Protected Attributes

ilLogger $log
 

Private Attributes

ILIAS DI Container $dic
 
ilDBInterface $db
 

Static Private Attributes

static ilCmiXapiDelModel $instance = null
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilCmiXapiDelModel::__construct ( )

Definition at line 44 of file class.ilCmiXapiDelModel.php.

References $DIC, and ilLoggerFactory\getLogger().

45  {
46  global $DIC;
47  $this->dic = $DIC;
48  $this->db = $this->dic->database();
49  $this->log = ilLoggerFactory::getLogger('cmix');
50  //
51  }
static getLogger(string $a_component_id)
Get component logger.
global $DIC
Definition: shib_login.php:25
+ Here is the call graph for this function:

Member Function Documentation

◆ deleteUserEntry()

ilCmiXapiDelModel::deleteUserEntry (   $usrId,
  $objId 
)

Definition at line 149 of file class.ilCmiXapiDelModel.php.

References $objId.

150  {
151  $this->db->manipulateF(
152  'DELETE FROM ' . self::DB_DEL_USERS . ' WHERE usr_id = %s AND obj_id = %s',
153  ['integer', 'integer'],
154  [$usrId, $objId]
155  );
156  }
$objId
Definition: xapitoken.php:55

◆ deleteXapiObjectEntry()

ilCmiXapiDelModel::deleteXapiObjectEntry (   $objId)

Definition at line 193 of file class.ilCmiXapiDelModel.php.

References $objId.

194  {
195  $this->db->manipulateF(
196  'DELETE FROM ' . self::DB_DEL_OBJ . ' WHERE obj_id = %s',
197  ['integer'],
198  [$objId]
199  );
200  }
$objId
Definition: xapitoken.php:55

◆ getAllXapiDelObjectData()

ilCmiXapiDelModel::getAllXapiDelObjectData ( )

Definition at line 171 of file class.ilCmiXapiDelModel.php.

References $data.

171  : array
172  {
173  $data = array();
174 
175  $result = $this->db->query("SELECT * FROM " . self::DB_DEL_OBJ . " WHERE 1");
176  while ($row = $this->db->fetchAssoc($result)) {
177  $data[] = $row;
178  }
179  return $data;
180  }

◆ getNewDeletedUsers()

ilCmiXapiDelModel::getNewDeletedUsers ( )

Definition at line 138 of file class.ilCmiXapiDelModel.php.

References $data.

139  {
140  $data = array();
141 
142  $result = $this->db->query("SELECT * FROM " . self::DB_DEL_USERS . " WHERE updated IS NULL");
143  while ($row = $this->db->fetchAssoc($result)) {
144  $data[] = $row;
145  }
146  return $data;
147  }

◆ getNewDeletedXapiObjects()

ilCmiXapiDelModel::getNewDeletedXapiObjects ( )

Definition at line 182 of file class.ilCmiXapiDelModel.php.

References $data.

183  {
184  $data = array();
185 
186  $result = $this->db->query("SELECT * FROM " . self::DB_DEL_OBJ . " WHERE updated IS NULL");
187  while ($row = $this->db->fetchAssoc($result)) {
188  $data[] = $row;
189  }
190  return $data;
191  }

◆ getXapiObjectData()

ilCmiXapiDelModel::getXapiObjectData ( int  $objId)

Definition at line 160 of file class.ilCmiXapiDelModel.php.

References $data.

161  {
162  $data = null;
163  $where = $this->db->quote($objId, 'integer');
164  $result = $this->db->query("SELECT lrs_type_id, activity_id, delete_data FROM " . self::DB_TABLE_NAME . " WHERE obj_id = " . $where);
165  while ($row = $this->db->fetchAssoc($result)) {
166  $data = $row;
167  }
168  return $data;
169  }
$objId
Definition: xapitoken.php:55

◆ getXapiObjectsByDeletedUsers()

ilCmiXapiDelModel::getXapiObjectsByDeletedUsers ( )

Definition at line 103 of file class.ilCmiXapiDelModel.php.

References $data.

103  : array
104  {
105  $data = [];
106  $result = $this->db->query("SELECT obj.obj_id, obj.lrs_type_id, obj.activity_id, usr.usr_id, usr.usr_ident, del.added FROM " .
107  self::DB_TABLE_NAME . " obj, " .
108  self::DB_USERS_TABLE_NAME . " usr, " .
109  self::DB_DEL_USERS . " del " .
110  #" INNER JOIN " . self::DB_DEL_USERS . " del ON usr.usr_id = xdel.usr_id" .
111  " WHERE usr.usr_id = del.usr_id AND obj.obj_id = usr.obj_id AND del.updated IS NULL");
112  while ($row = $this->db->fetchAssoc($result)) {
113  if (is_null($data)) {
114  $data = [];
115  }
116  $data[] = $row;
117  }
118  return $data;
119  }

◆ getXapiObjectsByUser()

ilCmiXapiDelModel::getXapiObjectsByUser ( int  $userId)

Definition at line 121 of file class.ilCmiXapiDelModel.php.

References $data.

121  : array
122  {
123  $data = [];
124  $result = $this->db->query("SELECT obj.obj_id, obj.lrs_type_id, obj.activity_id FROM " .
125  self::DB_TABLE_NAME . " obj, " .
126  self::DB_USERS_TABLE_NAME . " usr" .
127  #" INNER JOIN " . self::DB_DEL_USERS . " del ON usr.usr_id = xdel.usr_id" .
128  " WHERE usr.usr_id = " . $this->db->quote($userId, 'integer') . " AND obj.obj_id = usr.obj_id");
129  while ($row = $this->db->fetchAssoc($result)) {
130  if (is_null($data)) {
131  $data = [];
132  }
133  $data[] = $row;
134  }
135  return $data;
136  }

◆ getXapiObjIdForUser()

ilCmiXapiDelModel::getXapiObjIdForUser ( int  $userId)

Definition at line 58 of file class.ilCmiXapiDelModel.php.

References $data.

58  : ?array
59  {
60  $data = null;
61  $where = $this->db->quote($userId, 'integer');
62  $result = $this->db->query("SELECT obj_id FROM " . self::DB_USERS_TABLE_NAME . " WHERE usr_id = " . $where);
63  while ($row = $this->db->fetchAssoc($result)) {
64  if (is_null($data)) {
65  $data = [];
66  }
67  $data[] = $row['obj_id'];
68  }
69  return $data;
70  }

◆ init()

static ilCmiXapiDelModel::init ( )
static

Definition at line 53 of file class.ilCmiXapiDelModel.php.

Referenced by ilCmiXapiDelCron\__construct(), ilCmiXapiAppEventListener\onServiceObjectDeleteOrToTrash(), ilCmiXapiAppEventListener\onServiceUserDeleteUser(), and ilCmiXapiAppEventListener\removeMembers().

54  {
55  return self::$instance ?? self::$instance = new self();
56  }
Class ilCmiXapiDelModel.
+ Here is the caller graph for this function:

◆ removeCmixUsersForObject()

ilCmiXapiDelModel::removeCmixUsersForObject ( int  $objId)

Definition at line 266 of file class.ilCmiXapiDelModel.php.

266  : void
267  {
268  $this->db->manipulateF(
269  'DELETE FROM cmix_users WHERE obj_id = %s',
270  ['integer'],
271  [$objId]
272  );
273  $this->log->debug('cmix_users deleted for objId=' . (string) $objId);
274  }
$objId
Definition: xapitoken.php:55

◆ removeCmixUsersForObjectAndUser()

ilCmiXapiDelModel::removeCmixUsersForObjectAndUser ( int  $objId,
int  $usrId 
)

Definition at line 276 of file class.ilCmiXapiDelModel.php.

276  : void
277  {
278  $this->db->manipulateF(
279  'DELETE FROM cmix_users WHERE obj_id = %s AND usr_id = %s',
280  ['integer','integer'],
281  [$objId,$usrId]
282  );
283  $this->log->debug('cmix_user with usrId ' . (string) $usrId . ' deleted for objId=' . (string) $objId);
284  }
$objId
Definition: xapitoken.php:55

◆ resetUpdatedXapiObj()

ilCmiXapiDelModel::resetUpdatedXapiObj ( int  $objId)

Definition at line 256 of file class.ilCmiXapiDelModel.php.

257  {
258 
259  $this->db->update(self::DB_DEL_OBJ, [
260  'updated' => ['timestamp', null]
261  ], [
262  'obj_id' => ['integer', $objId]
263  ]);
264  }
$objId
Definition: xapitoken.php:55

◆ resetUpdatedXapiUser()

ilCmiXapiDelModel::resetUpdatedXapiUser ( int  $usrId,
int  $objId 
)

Definition at line 91 of file class.ilCmiXapiDelModel.php.

92  {
93  $this->db->update(self::DB_DEL_USERS, [
94  'updated' => ['timestamp', null]
95  ], [
96  'usr_id' => ['integer', $usrId],
97  'obj_id' => ['integer', $objId]
98  ]);
99  }
$objId
Definition: xapitoken.php:55

◆ setUserAsUpdated()

ilCmiXapiDelModel::setUserAsUpdated ( int  $usrId)

Definition at line 82 of file class.ilCmiXapiDelModel.php.

83  {
84  $this->db->update(self::DB_DEL_USERS, [
85  'updated' => ['timestamp', date('Y-m-d H:i:s')]
86  ], [
87  'usr_id' => ['integer', $usrId]
88  ]);
89  }

◆ setXapiObjAsDeleted()

ilCmiXapiDelModel::setXapiObjAsDeleted ( int  $objId,
int  $typeId,
string  $actId 
)

Definition at line 202 of file class.ilCmiXapiDelModel.php.

References $objId, $typeId, and ilCmiXapiStatementsDeleteRequest\DELETE_SCOPE_ALL.

202  : void
203  {
204  if (!$this->dic->cron()->manager()->isJobActive('xapi_deletion_cron')) {
206  $xapiDelete->delete();
207  } else {
208  $values = [
209  'obj_id' => ['integer', $objId],
210  'type_id' => ['integer', $typeId],
211  'activity_id' => ['string', $actId],
212  'added' => ['timestamp', date('Y-m-d H:i:s')]
213  ];
214  $this->db->insert(self::DB_DEL_OBJ, $values);
215  }
216  }
$objId
Definition: xapitoken.php:55
Class ilCmiXapiStatementsDeleteRequest.
$typeId
Definition: ltiregstart.php:34

◆ setXapiObjAsDeletedForUser()

ilCmiXapiDelModel::setXapiObjAsDeletedForUser ( int  $objId,
int  $typeId,
string  $actId,
int  $usrId 
)

Definition at line 218 of file class.ilCmiXapiDelModel.php.

References $objId, and ilCmiXapiStatementsDeleteRequest\DELETE_SCOPE_ALL.

218  : void
219  {
220  if (!$this->dic->cron()->manager()->isJobActive('xapi_deletion_cron')) {
222  $xapiDelete->delete();
223  } else {
224  $counter = 0;
225  $result = $this->db->queryF(
226  'SELECT count(*) as counter FROM ' . self::DB_DEL_USERS . ' WHERE usr_id = %s AND obj_id = %s',
227  ['integer', 'integer'],
228  [$usrId, $objId]
229  );
230  while ($row = $this->db->fetchAssoc($result)) {
231  $counter = $row['counter'];
232  }
233 
234  if ($counter == 0) {
235  $values = [
236  'usr_id' => ['integer', $usrId],
237  'obj_id' => ['integer', $objId],
238  'added' => ['timestamp', date('Y-m-d H:i:s')]
239  ];
240  $this->db->insert(self::DB_DEL_USERS, $values);
241  }
242  }
243  }
$objId
Definition: xapitoken.php:55
Class ilCmiXapiStatementsDeleteRequest.
$typeId
Definition: ltiregstart.php:34

◆ setXapiObjAsUpdated()

ilCmiXapiDelModel::setXapiObjAsUpdated ( int  $objId)

Definition at line 246 of file class.ilCmiXapiDelModel.php.

247  {
248 
249  $this->db->update(self::DB_DEL_OBJ, [
250  'updated' => ['timestamp', date('Y-m-d H:i:s')]
251  ], [
252  'obj_id' => ['integer', $objId]
253  ]);
254  }
$objId
Definition: xapitoken.php:55

◆ setXapiUserAsDeleted()

ilCmiXapiDelModel::setXapiUserAsDeleted ( int  $userId)

Definition at line 72 of file class.ilCmiXapiDelModel.php.

72  : bool
73  {
74  $values = [
75  'usr_id' => ['integer', $userId],
76  'added' => ['timestamp', date('Y-m-d H:i:s')]
77  ];
78  $this->db->insert(self::DB_DEL_USERS, $values);
79  return true;
80  }

Field Documentation

◆ $db

ilDBInterface ilCmiXapiDelModel::$db
private

Definition at line 38 of file class.ilCmiXapiDelModel.php.

◆ $dic

ILIAS DI Container ilCmiXapiDelModel::$dic
private

Definition at line 36 of file class.ilCmiXapiDelModel.php.

◆ $instance

ilCmiXapiDelModel ilCmiXapiDelModel::$instance = null
staticprivate

Definition at line 40 of file class.ilCmiXapiDelModel.php.

◆ $log

ilLogger ilCmiXapiDelModel::$log
protected

Definition at line 42 of file class.ilCmiXapiDelModel.php.

◆ DB_DEL_OBJ

const ilCmiXapiDelModel::DB_DEL_OBJ = 'cmix_del_object'

Definition at line 33 of file class.ilCmiXapiDelModel.php.

◆ DB_DEL_USERS

const ilCmiXapiDelModel::DB_DEL_USERS = 'cmix_del_user'

Definition at line 34 of file class.ilCmiXapiDelModel.php.

◆ DB_TABLE_NAME

const ilCmiXapiDelModel::DB_TABLE_NAME = 'cmix_settings'

Definition at line 30 of file class.ilCmiXapiDelModel.php.

◆ DB_USERS_TABLE_NAME

const ilCmiXapiDelModel::DB_USERS_TABLE_NAME = 'cmix_users'

Definition at line 31 of file class.ilCmiXapiDelModel.php.


The documentation for this class was generated from the following file: