ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
class.ilOrgUnitUserAssignmentRepository.php
Go to the documentation of this file.
1 <?php
2 
20 
21 use ilException;
25 
27 {
28  protected static self $instance;
29  protected \ilOrgUnitPositionDBRepository $positionRepo;
30  protected \ilOrgUnitUserAssignmentDBRepository $assignmentRepo;
31 
32  public static function getInstance(): self
33  {
34  if (!isset(self::$instance)) {
35  self::$instance = new self();
36  }
37 
38  return self::$instance;
39  }
40 
42  {
43  if (!isset($this->positionRepo)) {
45  $this->positionRepo = $dic["repo.Positions"];
46  }
47 
48  return $this->positionRepo;
49  }
50 
52  {
53  if (!isset($this->assignmentRepo)) {
55  $this->assignmentRepo = $dic["repo.UserAssignments"];
56  }
57 
58  return $this->assignmentRepo;
59  }
60 
64  public function findOrCreateAssignment(int $user_id, int $position_id, int $orgu_id): ilOrgUnitUserAssignment
65  {
66  return $this->getAssignmentRepo()->get($user_id, $position_id, $orgu_id);
67  }
68 
72  public function findAllUserAssingmentsByUserIds(array $arr_user_ids): array
73  {
74  $assignments = $this->getAssignmentRepo()->getByUsers($arr_user_ids);
75 
76  $user_assignment_list_by_user = [];
77  foreach ($assignments as $user_assignment) {
78  $user_assignment_list_by_user[$user_assignment->getUserId()][] = $user_assignment;
79  }
80 
81  return $user_assignment_list_by_user;
82  }
83 
87  public function getEmplSuperiorList(array $arr_empl_user_ids): array
88  {
89  return $this->getAssignmentRepo()->getSuperiorsByUsers($arr_empl_user_ids);
90  }
91 
95  public function getPositionsOfUserId(int $user_id): array
96  {
97  return $this->getAssignmentRepo()->getPositionsByUser($user_id);
98  }
99 
103  public function getAssignmentOrFail(int $user_id, int $position_id, int $orgu_id): ilOrgUnitUserAssignment
104  {
105  $assignment = $this->getAssignmentRepo()->get($user_id, $position_id, $orgu_id);
106  if (!$assignment) {
107  throw new ilException('UserAssignment not found');
108  }
109  return $assignment;
110  }
111 
115  public function getAssignmentsOfUserId(int $user_id): array
116  {
117  return $this->getAssignmentRepo()->getByUsers([$user_id]);
118  }
119 
123  public function getUserIdsOfOrgUnit(int $orgunit_ref_id): array
124  {
125  return $this->getAssignmentRepo()->getUsersByOrgUnits([$orgunit_ref_id]);
126  }
127 
131  public function getUserIdsOfOrgUnits(array $orgunit_ref_id): array
132  {
133  return $this->getAssignmentRepo()->getUsersByOrgUnits($orgunit_ref_id);
134  }
135 
139  public function getUserIdsOfOrgUnitsOfUsersPosition(int $position_id, int $user_id, bool $recursive = false): array
140  {
141  return $this->getAssignmentRepo()->getUsersByUserAndPosition($user_id, $position_id, $recursive);
142  }
143 
147  public function getUserIdsOfOrgUnitsInPosition(array $orgu_ids, int $position_id): array
148  {
149  return $this->getAssignmentRepo()->getUsersByOrgUnitsAndPosition($orgu_ids, $position_id);
150  }
151 
156  int $user_id,
157  array $users_position_id,
158  int $position_id,
159  bool $recursive = false
160  ): array {
161  return $this->getAssignmentRepo()->getFilteredUsersByUserAndPosition($user_id, array_shift($users_position_id), $position_id, $recursive);
162  }
163 
168  int $position_id,
169  int $user_id,
170  bool $recursive = false
171  ): array {
172  return $this->getAssignmentRepo()->getOrgUnitsByUserAndPosition($user_id, $position_id, $recursive);
173  }
174 
178  public function getUserIdsOfPosition(int $position_id): array
179  {
180  return $this->getAssignmentRepo()->getUsersByPosition($position_id);
181  }
182 
186  public function getUserAssignmentsOfPosition(int $position_id): array
187  {
188  return $this->getAssignmentRepo()->getByPosition($position_id);
189  }
190 
194  public function deleteAllAssignmentsOfUser(int $user_id): void
195  {
196  $this->getAssignmentRepo()->deleteByUser($user_id);
197  }
198 }
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: result.php:31
getOrgUnitIdsOfUsersPosition(int $position_id, int $user_id, bool $recursive=false)
getUserIdsOfOrgUnitsOfUsersPosition(int $position_id, int $user_id, bool $recursive=false)