ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
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;
36 case StudyProgramme;
37 case Search;
38 case Export;
39
40 public function isFieldVisible(
41 Field $field,
42 ?\ilObjUser $user
43 ): bool {
44 return match($this) {
45 self::Registration => $field->isVisibleInRegistration(),
46 self::User => $field->isVisibleToUser()
47 || $field->isRequired() && ($user === null || empty($field->retrieveValueFromUser($user))),
48 self::LocalUserAdministration => $field->isVisibleInLocalUserAdministration()
49 || $field->isRequired() && ($user === null || empty($field->retrieveValueFromUser($user))),
50 self::Certificate => $field->isAvailableInCertificates(),
51 self::Course => $field->isVisibleInCourses(),
52 self::Group => $field->isVisibleInGroups(),
53 self::StudyProgramme => $field->isVisibleInStudyProgrammes(),
54 self::Search => $field->isSearchable(),
55 self::Export => $field->export(),
56 self::UserAdministration => true,
57 default => false
58 };
59 }
60
61 public function isFieldChangeable(
62 Field $field,
63 ?\ilObjUser $user
64 ): bool {
65 return match($this) {
66 self::Registration => $field->isVisibleInRegistration(),
67 self::User => $field->isChangeableByUser()
68 || $field->isRequired() && ($user === null || empty($field->retrieveValueFromUser($user))),
69 self::LocalUserAdministration => $field->isChangeableInLocalUserAdministration()
70 || $field->isRequired() && ($user === null || empty($field->retrieveValueFromUser($user))),
71 self::UserAdministration => true,
72 default => false
73 };
74 }
75
76 public function isSettingAvailable(
77 Setting $setting
78 ): bool {
79 return match($this) {
80 self::UserAdministration => true,
81 self::LocalUserAdministration => $setting->isChangeableInLocalUserAdministration(),
82 self::User => $setting->isChangeableByUser(),
83 self::Export => $setting->export(),
84 default => false
85 };
86 }
87
88 public static function buildFromObjectType(string $type): ?self
89 {
90 return match($type) {
91 'crs' => self::Course,
92 'grp' => self::Group,
93 'prg' => self::StudyProgramme,
94 'lso' => self::LearningSequence,
95 default => null
96 };
97 }
@ isFieldVisible
Definition: Context.php:40
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