ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
Context.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21namespace ILIAS\User;
22
25
27{
28 case Registration;
29 case User;
30 case UserAdministration;
31 case LocalUserAdministration;
32 case Certificate;
33 case Course;
34 case Group;
35 case StudyProgramme;
36 case Search;
37 case Export;
38
39 public function isFieldVisibleInType(
40 Field $field,
41 ?\ilObjUser $user
42 ): bool {
43 return match($this) {
44 self::Registration => $field->isVisibleInRegistration(),
45 self::User => $field->isVisibleToUser()
46 || $field->isRequired() && ($user === null || empty($field->retrieveValueFromUser($user))),
47 self::LocalUserAdministration => $field->isVisibleInLocalUserAdministration()
48 || $field->isRequired() && ($user === null || empty($field->retrieveValueFromUser($user))),
49 self::Certificate => $field->isAvailableInCertificates(),
50 self::Course => $field->isVisibleInCourses(),
51 self::Group => $field->isVisibleInGroups(),
52 self::StudyProgramme => $field->isVisibleInStudyProgrammes(),
53 self::Search => $field->isSearchable(),
54 self::Export => $field->export(),
55 self::UserAdministration => true
56 };
57 }
58
59 public function isFieldChangeableInType(
60 Field $field,
61 ?\ilObjUser $user
62 ): bool {
63 return match($this) {
64 self::Registration => $field->isVisibleInRegistration(),
65 self::User => $field->isChangeableByUser()
66 || $field->isRequired() && ($user === null || empty($field->retrieveValueFromUser($user))),
67 self::LocalUserAdministration => $field->isChangeableInLocalUserAdministration()
68 || $field->isRequired() && ($user === null || empty($field->retrieveValueFromUser($user))),
69 self::UserAdministration => true,
70 default => false
71 };
72 }
73
74 public function isSettingAvailableInType(
75 Setting $setting
76 ): bool {
77 return match($this) {
78 self::UserAdministration => true,
79 self::LocalUserAdministration => $setting->isChangeableInLocalUserAdministration(),
80 self::User => $setting->isChangeableByUser(),
81 self::Export => $setting->export(),
82 default => false
83 };
84 }
85
86 public static function buildFromObjectType(string $type): ?self
87 {
88 return match($type) {
89 'crs' => self::Course,
90 'grp' => self::Group,
91 'prg' => self::StudyProgramme,
92 default => null
93 };
94 }
@ isFieldVisibleInType
Definition: Context.php:39
ilSetting $setting
Definition: class.ilias.php:68
User class.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Definition: UserEvent.php:21