ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
class.ilOrgUnitUserAssignmentRepository.php
Go to the documentation of this file.
1 <?php
2 
21 
22 use ilException;
26 
28 {
29  protected static self $instance;
30  protected \ilOrgUnitPositionDBRepository $positionRepo;
31  protected \ilOrgUnitUserAssignmentDBRepository $assignmentRepo;
32 
33  public static function getInstance(): self
34  {
35  if (!isset(self::$instance)) {
36  self::$instance = new self();
37  }
38 
39  return self::$instance;
40  }
41 
43  {
44  if (!isset($this->positionRepo)) {
46  $this->positionRepo = $dic["repo.Positions"];
47  }
48 
49  return $this->positionRepo;
50  }
51 
53  {
54  if (!isset($this->assignmentRepo)) {
56  $this->assignmentRepo = $dic["repo.UserAssignments"];
57  }
58 
59  return $this->assignmentRepo;
60  }
61 
65  public function findOrCreateAssignment(int $user_id, int $position_id, int $orgu_id): ilOrgUnitUserAssignment
66  {
67  return $this->getAssignmentRepo()->get($user_id, $position_id, $orgu_id);
68  }
69 
73  public function findAllUserAssingmentsByUserIds(array $arr_user_ids): array
74  {
75  $assignments = $this->getAssignmentRepo()->getByUsers($arr_user_ids);
76 
77  $user_assignment_list_by_user = [];
78  foreach ($assignments as $user_assignment) {
79  $user_assignment_list_by_user[$user_assignment->getUserId()][] = $user_assignment;
80  }
81 
82  return $user_assignment_list_by_user;
83  }
84 
88  public function getEmplSuperiorList(array $arr_empl_user_ids): array
89  {
90  return $this->getAssignmentRepo()->getSuperiorsByUsers($arr_empl_user_ids);
91  }
92 
96  public function getPositionsOfUserId(int $user_id): array
97  {
98  return $this->getAssignmentRepo()->getPositionsByUser($user_id);
99  }
100 
104  public function getAssignmentOrFail(int $user_id, int $position_id, int $orgu_id): ilOrgUnitUserAssignment
105  {
106  $assignment = $this->getAssignmentRepo()->get($user_id, $position_id, $orgu_id);
107  if (!$assignment) {
108  throw new ilException('UserAssignment not found');
109  }
110  return $assignment;
111  }
112 
116  public function getAssignmentsOfUserId(int $user_id): array
117  {
118  return $this->getAssignmentRepo()->getByUsers([$user_id]);
119  }
120 
124  public function getUserIdsOfOrgUnit(int $orgunit_ref_id): array
125  {
126  return $this->getAssignmentRepo()->getUsersByOrgUnits([$orgunit_ref_id]);
127  }
128 
132  public function getUserIdsOfOrgUnits(array $orgunit_ref_id): array
133  {
134  return $this->getAssignmentRepo()->getUsersByOrgUnits($orgunit_ref_id);
135  }
136 
140  public function getUserIdsOfOrgUnitsOfUsersPosition(int $position_id, int $user_id, bool $recursive = false): array
141  {
142  return $this->getAssignmentRepo()->getUsersByUserAndPosition($user_id, $position_id, $recursive);
143  }
144 
148  public function getUserIdsOfOrgUnitsInPosition(array $orgu_ids, int $position_id): array
149  {
150  return $this->getAssignmentRepo()->getUsersByOrgUnitsAndPosition($orgu_ids, $position_id);
151  }
152 
157  int $user_id,
158  array $users_position_id,
159  int $position_id,
160  bool $recursive = false
161  ): array {
162  return $this->getAssignmentRepo()->getFilteredUsersByUserAndPosition($user_id, array_shift($users_position_id), $position_id, $recursive);
163  }
164 
169  int $position_id,
170  int $user_id,
171  bool $recursive = false
172  ): array {
173  return $this->getAssignmentRepo()->getOrgUnitsByUserAndPosition($user_id, $position_id, $recursive);
174  }
175 
179  public function getUserIdsOfPosition(int $position_id): array
180  {
181  return $this->getAssignmentRepo()->getUsersByPosition($position_id);
182  }
183 
187  public function getUserAssignmentsOfPosition(int $position_id): array
188  {
189  return $this->getAssignmentRepo()->getByPosition($position_id);
190  }
191 
195  public function deleteAllAssignmentsOfUser(int $user_id): void
196  {
197  $this->getAssignmentRepo()->deleteByUser($user_id);
198  }
199 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getUserIdsOfUsersOrgUnitsInPosition(int $user_id, array $users_position_id, int $position_id, bool $recursive=false)
$dic
Definition: ltiresult.php:33
getOrgUnitIdsOfUsersPosition(int $position_id, int $user_id, bool $recursive=false)
getUserIdsOfOrgUnitsOfUsersPosition(int $position_id, int $user_id, bool $recursive=false)