ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
ILIAS\User Class Reference
+ Inheritance diagram for ILIAS\User:
+ Collaboration diagram for ILIAS\User:

Public Types

enum  Context { isFieldVisible }
 
enum  PropertyAttributes : string { getSettingsAccessPrefix }
 

Public Member Functions

 init (array|\ArrayAccess &$define, array|\ArrayAccess &$implement, array|\ArrayAccess &$use, array|\ArrayAccess &$contribute, array|\ArrayAccess &$seek, array|\ArrayAccess &$provide, array|\ArrayAccess &$pull, array|\ArrayAccess &$internal,)
 
 init (array|\ArrayAccess &$define, array|\ArrayAccess &$implement, array|\ArrayAccess &$use, array|\ArrayAccess &$contribute, array|\ArrayAccess &$seek, array|\ArrayAccess &$provide, array|\ArrayAccess &$pull, array|\ArrayAccess &$internal,)
 

Detailed Description

Definition at line 33 of file User.php.

Member Enumeration Documentation

◆ Context

Enumerator
isFieldVisible 

Definition at line 26 of file Context.php.

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 }
98}
retrieveValueFromUser(\ilObjUser $user)
Definition: Field.php:341
@ isFieldVisible
Definition: Context.php:40
ilSetting $setting
Definition: class.ilias.php:68
User class.
return['delivery_method'=> 'php',]
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ PropertyAttributes

enum ILIAS::User::PropertyAttributes : string
Enumerator
getSettingsAccessPrefix 

Definition at line 21 of file PropertyAttributes.php.

22{
23 private const string SETTINGS_ACCESS_PREFIX_CHANGEABLE_BY_USER = 'usr_settings_changeable_by_user';
24 private const string SETTINGS_ACCESS_PREFIX_CHANGEABLE_IN_LUA = 'usr_settings_changeable_lua';
25 private const string SETTINGS_ACCESS_PREFIX_EXPORT = 'usr_settings_export';
26
27 case VisibleInRegistration = 'header_visible_registration';
28 case VisibleToUser = 'user_visible_in_profile';
29 case VisibleInLocalUserAdministration = 'usr_settings_visib_lua';
30 case VisibleInCourses = 'course_export';
31 case VisibleInGroups = 'group_export';
32 case VisibleInStudyProgrammes = 'prg_export';
33 case ChangeableByUser = 'changeable';
34 case ChangeableInLocalUserAdministration = 'usr_settings_changeable_lua';
35 case Required = 'required_field';
36 case Export = 'export';
37 case Searchable = 'header_searchable';
38 case AvailableInCertificates = 'certificate';
39
40 public function getSettingsAccessPrefix(): string
41 {
42 return match($this) {
43 self::ChangeableByUser => self::SETTINGS_ACCESS_PREFIX_CHANGEABLE_BY_USER,
44 self::ChangeableInLocalUserAdministration => self::SETTINGS_ACCESS_PREFIX_CHANGEABLE_IN_LUA,
45 self::Export => self::SETTINGS_ACCESS_PREFIX_EXPORT,
46 default => throw new \Exception('Not a valid setting!')
47 };
48 }
49}

Member Function Documentation

◆ init()

ILIAS\User::init ( array|\ArrayAccess &  $define,
array|\ArrayAccess &  $implement,
array|\ArrayAccess &  $use,
array|\ArrayAccess &  $contribute,
array|\ArrayAccess &  $seek,
array|\ArrayAccess &  $provide,
array|\ArrayAccess &  $pull,
array|\ArrayAccess &  $internal 
)

Implements ILIAS\Component\Component.

Definition at line 35 of file User.php.

44 : void {
45 $contribute[SetupAgent::class] = fn() =>
46 new Agent(
47 $seek[UserSettings::class],
48 $seek[CustomProfileFieldType::class],
49 $seek[UserFieldAttributesChangeListener::class]
50 );
51 $contribute[UserSettings::class] = fn() =>
52 new SettingsOfUser();
53 $contribute[CustomProfileFieldType::class] = fn() =>
54 new CustomTypeText();
55 $contribute[CustomProfileFieldType::class] = fn() =>
56 new CustomTypeTextArea();
57 $contribute[CustomProfileFieldType::class] = fn() =>
58 new CustomTypeSelect();
59 }

The documentation for this class was generated from the following files: