ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
class.ilOrgUnitUserAssignmentRepository.php
Go to the documentation of this file.
1<?php
2
20
21use 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
49 }
50
52 {
53 if (!isset($this->assignmentRepo)) {
55 $this->assignmentRepo = $dic["repo.UserAssignments"];
56 }
57
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}
getUserIdsOfOrgUnitsOfUsersPosition(int $position_id, int $user_id, bool $recursive=false)
getUserIdsOfUsersOrgUnitsInPosition(int $user_id, array $users_position_id, int $position_id, bool $recursive=false)
getOrgUnitIdsOfUsersPosition(int $position_id, int $user_id, bool $recursive=false)
Base class for ILIAS Exception handling.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ilOrgUnitPosition.
Class ilOrgUnitUserAssignment.
return['delivery_method'=> 'php',]
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$dic
Definition: ltiresult.php:33
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...