ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilOrgUnitUserAssignmentQueries.php
Go to the documentation of this file.
1 <?php
24 {
26 
27  public static function getInstance(): self
28  {
29  if (!isset(self::$instance)) {
30  self::$instance = new self();
31  }
32 
33  return self::$instance;
34  }
35 
39  public function getPositionsOfUserId(int $user_id): array
40  {
41  $positions = [];
42  foreach ($this->getAssignmentsOfUserId($user_id) as $assignment) {
43  $positions[] = ilOrgUnitPosition::find($assignment->getPositionId());
44  }
45 
46  return $positions;
47  }
48 
52  public function getAssignmentOrFail(int $user_id, int $position_id, int $orgu_id): ilOrgUnitUserAssignment
53  {
55  'user_id' => $user_id,
56  'position_id' => $position_id,
57  'orgu_id' => $orgu_id,
58  ])->first();
59  if (!$ua) {
60  throw new ilException('UserAssignement not found');
61  }
62 
63  assert($ua instanceof ilOrgUnitUserAssignment);
64  return $ua;
65  }
66 
70  public function getAssignmentsOfUserId(int $user_id): array
71  {
72  return ilOrgUnitUserAssignment::where(['user_id' => $user_id])->get();
73  }
74 
78  public function getAssignmentsOfUserIdAndPosition(int $user_id, int $position_id): array
79  {
81  [
82  'user_id' => $user_id,
83  'position_id' => $position_id
84  ]
85  )->get();
86  }
87 
92  public function getUserIdsOfOrgUnit(int $orgunit_ref_id): array
93  {
94  return ilOrgUnitUserAssignment::where(['orgu_id' => $orgunit_ref_id])
95  ->getArray(null, 'user_id');
96  }
97 
102  public function getUserIdsOfOrgUnits(array $orgunit_ref_id): array
103  {
104  return ilOrgUnitUserAssignment::where(['orgu_id' => $orgunit_ref_id])
105  ->getArray(null, 'user_id');
106  }
107 
111  public function getUserIdsOfOrgUnitsOfUsersPosition(int $position_id, int $user_id, bool $recursive = false): array
112  {
114  $position_id,
115  $user_id,
116  $recursive
117  )
118  ])
119  ->getArray(null, 'user_id');
120  }
121 
126  public function getUserIdsOfOrgUnitsInPosition(array $orgu_ids, int $position_id): array
127  {
129  'orgu_id' => $orgu_ids,
130  'position_id' => $position_id,
131  ])->getArray(null, 'user_id');
132  }
133 
139  int $user_id,
140  int $users_position_id,
141  int $position_id,
142  bool $recursive = false
143  ): array {
145  'orgu_id' => $this->getOrgUnitIdsOfUsersPosition($users_position_id, $user_id, $recursive),
146  'position_id' => $position_id,
147  ])->getArray(null, 'user_id');
148  }
149 
153  public function getOrgUnitIdsOfUsersPosition(int $position_id, int $user_id, bool $recursive = false): array
154  {
155  $orgu_ids = ilOrgUnitUserAssignment::where([
156  'position_id' => $position_id,
157  'user_id' => $user_id,
158  ])->getArray(null, 'orgu_id');
159 
160  if (!$recursive) {
161  return $orgu_ids;
162  }
163 
164  $recursive_orgu_ids = [];
166  foreach ($orgu_ids as $orgu_id) {
167  $recursive_orgu_ids = $recursive_orgu_ids + $tree->getAllChildren($orgu_id);
168  }
169 
170  return $recursive_orgu_ids;
171  }
172 
176  public function getUserIdsOfPosition(int $position_id): array
177  {
179  'position_id' => $position_id,
180  ])->getArray(null, 'user_id');
181  }
182 
186  public function getUserAssignmentsOfPosition(int $position_id): array
187  {
189  'position_id' => $position_id,
190  ])->get();
191  }
192 
197  public function deleteAllAssignmentsOfUser(int $user_id): void
198  {
199  global $DIC;
200  $q = "DELETE FROM il_orgu_ua WHERE user_id = " . $DIC->database()->quote($user_id, "integer");
201  $DIC->database()->manipulate($q);
202  }
203 }
static ilOrgUnitUserAssignmentQueries $instance
static where($where, $operator=null)
getAssignmentsOfUserIdAndPosition(int $user_id, int $position_id)
global $DIC
Definition: feed.php:28
getOrgUnitIdsOfUsersPosition(int $position_id, int $user_id, bool $recursive=false)
getAssignmentOrFail(int $user_id, int $position_id, int $orgu_id)
getUserIdsOfOrgUnitsInPosition(array $orgu_ids, int $position_id)
getUserIdsOfOrgUnitsOfUsersPosition(int $position_id, int $user_id, bool $recursive=false)
getUserIdsOfUsersOrgUnitsInPosition(int $user_id, int $users_position_id, int $position_id, bool $recursive=false)