1<?
php declare(strict_types=1);
28 $this->db =
$DIC[
'ilDB'];
40 $res = $this->db->queryF(
43 buddylist.usr_id, buddylist.buddy_usr_id, buddylist.ts, %s rel_type
45 INNER JOIN usr_data ud
46 ON ud.usr_id = buddylist.usr_id
47 WHERE buddylist.usr_id = %s
50 buddylist_requests.usr_id, buddylist_requests.buddy_usr_id, buddylist_requests.ts, (CASE WHEN ignored = 1 THEN %s ELSE %s END) rel_type
51 FROM buddylist_requests
52 INNER JOIN usr_data ud ON ud.usr_id = buddylist_requests.usr_id
53 INNER JOIN usr_data udbuddy ON udbuddy.usr_id = buddylist_requests.buddy_usr_id
54 WHERE buddylist_requests.usr_id = %s OR buddylist_requests.buddy_usr_id = %s
74 while ($row = $this->db->fetchAssoc(
$res)) {
76 $relation->setUsrId((
int) $row[
'usr_id']);
77 $relation->setBuddyUsrId((
int) $row[
'buddy_usr_id']);
78 $relation->setTimestamp((
int) $row[
'ts']);
79 $relation->setIsOwnedByActor($relation->getUsrId() === $this->usrId);
80 $key = $this->usrId === $relation->getUsrId() ? $relation->getBuddyUsrId() : $relation->getUsrId();
81 $relations[$key] = $relation;
93 if (self::TYPE_APPROVED === $row[
'rel_type']) {
95 } elseif (self::TYPE_IGNORED === $row[
'rel_type']) {
108 "DELETE FROM buddylist WHERE usr_id = %s OR buddy_usr_id = %s",
109 [
'integer',
'integer'],
110 [$this->usrId, $this->usrId]
114 "DELETE FROM buddylist_requests WHERE usr_id = %s OR buddy_usr_id = %s",
115 [
'integer',
'integer'],
116 [$this->usrId, $this->usrId]
128 'usr_id' => [
'integer', $relation->
getUsrId()],
140 'buddy_usr_id' => [
'integer', $relation->
getUsrId()]
153 $this->db->manipulateF(
154 "DELETE FROM buddylist WHERE usr_id = %s AND buddy_usr_id = %s",
155 [
'integer',
'integer'],
159 $this->db->manipulateF(
160 "DELETE FROM buddylist WHERE buddy_usr_id = %s AND usr_id = %s",
161 [
'integer',
'integer'],
173 'buddylist_requests',
175 'usr_id' => [
'integer', $relation->
getUsrId()],
180 'ignored' => [
'integer', (
int) $ignored]
190 $this->db->manipulateF(
191 "DELETE FROM buddylist_requests WHERE usr_id = %s AND buddy_usr_id = %s",
192 [
'integer',
'integer'],
196 $this->db->manipulateF(
197 "DELETE FROM buddylist_requests WHERE buddy_usr_id = %s AND usr_id = %s",
198 [
'integer',
'integer'],
208 $ilAtomQuery = $this->db->buildAtomQuery();
209 $ilAtomQuery->addTableLock(
'buddylist_requests');
210 $ilAtomQuery->addTableLock(
'buddylist');
214 $this->addToApprovedBuddies($relation);
216 $this->removeFromApprovedBuddies($relation);
220 $this->addToRequestedBuddies($relation, false);
222 $this->addToRequestedBuddies($relation, true);
224 $this->removeFromRequestedBuddies($relation);
An exception for terminatinating execution or to throw for unit testing.
Class ilBuddySystemIgnoredRequestRelationState.
Class ilBuddySystemLinkedState.
Class ilBuddySystemRelationRepository.
removeFromRequestedBuddies(ilBuddySystemRelation $relation)
removeFromApprovedBuddies(ilBuddySystemRelation $relation)
getRelationByDatabaseRecord($row)
getAll()
Reads all items from database.
addToRequestedBuddies(ilBuddySystemRelation $relation, $ignored)
__construct(int $usrId)
ilBuddySystemRelationRepository constructor.
save(ilBuddySystemRelation $relation)
addToApprovedBuddies(ilBuddySystemRelation $relation)
Class ilBuddySystemRelation.
Class ilBuddySystemRequestedRelationState.
if(!file_exists(getcwd() . '/ilias.ini.php'))
registration confirmation script for ilias
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
foreach($_POST as $key=> $value) $res