27     private \ilOrgUnitGlobalSettings 
$set;
    39         $this->
user = $DIC->user();
    42         $this->assignmentRepo = 
$dic[
"repo.UserAssignments"];
    43         $this->operationRepo = 
$dic[
"repo.Operations"];
    44         $this->permissionRepo = 
$dic[
"repo.Permissions"];
    65         $assignment_of_user = $this->assignmentRepo->getByUsers([$for_user_id]);
    66         $other_users_in_same_org_units = [];
    67         foreach ($assignment_of_user as $assignment) {
    68             $other_users_in_same_org_units += $this->assignmentRepo->getUsersByOrgUnits([$assignment->getOrguId()]);
    71         return array_intersect($user_ids, $other_users_in_same_org_units);
    95         return ($on_user_ids === array_intersect($on_user_ids, $filtered_user_ids)
    96             && $filtered_user_ids === array_intersect($filtered_user_ids, $on_user_ids));
   120         $operation = $this->operationRepo->find($pos_perm, $this->
getTypeForRefId($ref_id));
   125         $allowed_user_ids = [];
   126         foreach ($this->assignmentRepo->getPositionsByUser($user_id) as $position) {
   127             $permissions = $this->permissionRepo->getLocalorDefault($ref_id, $position->getId());
   128             if (!$permissions->isOperationIdSelected($operation->getOperationId())) {
   132             foreach ($position->getAuthorities() as $authority) {
   133                 switch ($authority->getOver()) {
   135                         switch ($authority->getScope()) {
   137                                 $allowed = $this->assignmentRepo->getUsersByUserAndPosition(
   142                                 $allowed_user_ids = array_merge($allowed_user_ids, $allowed);
   145                                 $allowed = $this->assignmentRepo->getUsersByUserAndPosition(
   150                                 $allowed_user_ids = array_merge($allowed_user_ids, $allowed);
   155                         switch ($authority->getScope()) {
   157                                 $allowed = $this->assignmentRepo->getFilteredUsersByUserAndPosition(
   159                                     $authority->getPositionId(),
   160                                     $authority->getOver(),
   163                                 $allowed_user_ids = array_merge($allowed_user_ids, $allowed);
   166                                 $allowed = $this->assignmentRepo->getFilteredUsersByUserAndPosition(
   168                                     $authority->getPositionId(),
   169                                     $authority->getOver(),
   172                                 $allowed_user_ids = array_merge($allowed_user_ids, $allowed);
   179         $allowed_user_ids[] = $this->
user->getId();
   180         return array_intersect($user_ids, $allowed_user_ids);
   190         $operation = $this->operationRepo->find($pos_perm, $this->
getTypeForRefId($ref_id));
   196         foreach ($this->assignmentRepo->getPositionsByUser($current_user_id) as $position) {
   197             $permissions = $this->permissionRepo->getLocalorDefault($ref_id, $position->getId());
   198             if ($permissions->isOperationIdSelected($operation->getOperationId())) {
   215         foreach ($this->assignmentRepo->getPositionsByUser($current_user_id) as $position) {
   216             $permissions = $this->permissionRepo->getLocalorDefault($ref_id, $position->getId());
   217             if (count($permissions->getOperations()) > 0) {
   229         if ($this->
access->checkAccess($rbac_perm, 
'', $ref_id)) {
   250         if ($this->
access->checkAccess($rbac_perm, 
'', $ref_id)) {
   260         if ($this->
access->checkAccess($rbac_perm, 
'', $ref_id)) {
   274         return $this->
user->getId();
   280         if (!isset(self::$ref_id_obj_type_map[$ref_id])) {
   284         return self::$ref_id_obj_type_map[
$ref_id];
   296         return $this->
set->isPositionAccessActiveForObject($obj_id);
 
__construct(ilAccess $access)
 
isUserBasedOnPositionsAllowedTo(int $which_user_id, string $permission, array $on_user_ids)
 
ilOrgUnitPermissionDBRepository $permissionRepo
 
hasUserRBACorAnyPositionAccess(string $rbac_perm, int $ref_id)
 
checkPositionAccess(string $pos_perm, int $ref_id)
 
filterUserIdsByPositionOfCurrentUser(string $pos_perm, int $ref_id, array $user_ids)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
getTypeForRefId(int $ref_id)
 
Interface ilOrgUnitPositionAndRBACAccessHandler Provides access checks due to a users OrgUnit-Positio...
 
ilOrgUnitUserAssignmentDBRepository $assignmentRepo
 
isPositionActiveForRefId(int $ref_id)
 
static _lookupObjectId(int $ref_id)
 
hasCurrentUserAnyPositionAccess(int $ref_id)
 
filterUserIdsByPositionOfUser(int $user_id, string $pos_perm, int $ref_id, array $user_ids)
 
static array $ref_id_obj_type_map
 
checkRbacOrPositionPermissionAccess(string $rbac_perm, string $pos_perm, int $ref_id)
 
Interface ilOrgUnitPositionAccessHandler Provides access checks due to a users OrgUnit-Positions. 
 
filterUserIdsForCurrentUsersPositionsAndPermission(array $user_ids, string $permission)
 
filterUserIdsByRbacOrPositionOfCurrentUser(string $rbac_perm, string $pos_perm, int $ref_id, array $user_ids)
 
filterUserIdsForUsersPositionsAndPermission(array $user_ids, int $for_user_id, string $permission)
 
isCurrentUserBasedOnPositionsAllowedTo(string $permission, array $on_user_ids)
 
static _lookupType(int $id, bool $reference=false)
 
ilOrgUnitGlobalSettings $set
 
const SCOPE_SUBSEQUENT_ORGUS
 
ilOrgUnitOperationDBRepository $operationRepo
 
getObjIdForRefId(int $ref_id)