ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\User Class Reference
+ Inheritance diagram for ILIAS\User:
+ Collaboration diagram for ILIAS\User:

Public Types

enum  Context { isFieldVisibleInType }
 
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
isFieldVisibleInType 

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;
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 }
95}
retrieveValueFromUser(\ilObjUser $user)
Definition: Field.php:341
@ isFieldVisibleInType
Definition: Context.php:39
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: