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

Public Member Functions

 __construct (private readonly \ilSetting $settings, private readonly array $available_user_settings)
 
 get ()
 
 getByIdentifier (string $identifier)
 
 getByDefinitionClass (string $class)
 
 storeConfiguration (Setting $setting)
 

Private Member Functions

 buildSettingFromDefinition (SettingDefinition $definition)
 
 updateLegacyValues (SettingDefinition $definition)
 
 retrieveConfigurationValue (string $prefix, string $identifier)
 
 storeConfigurationValue (string $prefix, string $identifier, bool $value)
 

Detailed Description

Definition at line 25 of file Repository.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\User\Settings\Repository::__construct ( private readonly \ilSetting  $settings,
private readonly array  $available_user_settings 
)

Definition at line 27 of file Repository.php.

30 {
31 }

Member Function Documentation

◆ buildSettingFromDefinition()

ILIAS\User\Settings\Repository::buildSettingFromDefinition ( SettingDefinition  $definition)
private

Definition at line 87 of file Repository.php.

89 : Setting {
90 $this->updateLegacyValues($definition);
91 return new Setting(
92 $definition,
94 PropertyAttributes::ChangeableByUser->getSettingsAccessPrefix(),
95 $definition->getIdentifier()
96 ),
97 $this->retrieveConfigurationValue(
98 PropertyAttributes::ChangeableInLocalUserAdministration->getSettingsAccessPrefix(),
99 $definition->getIdentifier()
100 ),
101 $this->retrieveConfigurationValue(
102 PropertyAttributes::Export->getSettingsAccessPrefix(),
103 $definition->getIdentifier()
104 ),
105 );
106 }
updateLegacyValues(SettingDefinition $definition)
Definition: Repository.php:111
retrieveConfigurationValue(string $prefix, string $identifier)
Definition: Repository.php:128

Referenced by ILIAS\User\Settings\Repository\get(), ILIAS\User\Settings\Repository\getByDefinitionClass(), and ILIAS\User\Settings\Repository\getByIdentifier().

+ Here is the caller graph for this function:

◆ get()

ILIAS\User\Settings\Repository::get ( )

Definition at line 33 of file Repository.php.

33 : array
34 {
35 return array_reduce(
36 $this->available_user_settings,
37 function (array $c, string $v): array {
38 $definition = new $v();
39 if (!$definition->isAvailable()) {
40 return $c;
41 }
42 $c[] = $this->buildSettingFromDefinition($definition);
43 return $c;
44 },
45 []
46 );
47 }
buildSettingFromDefinition(SettingDefinition $definition)
Definition: Repository.php:87
$c
Definition: deliver.php:25

References $c, and ILIAS\User\Settings\Repository\buildSettingFromDefinition().

+ Here is the call graph for this function:

◆ getByDefinitionClass()

ILIAS\User\Settings\Repository::getByDefinitionClass ( string  $class)

Definition at line 60 of file Repository.php.

60 : ?Setting
61 {
62 if (!in_array($class, $this->available_user_settings)) {
63 return null;
64 }
65 return $this->buildSettingFromDefinition(new $class());
66 }

References ILIAS\User\Settings\Repository\buildSettingFromDefinition().

+ Here is the call graph for this function:

◆ getByIdentifier()

ILIAS\User\Settings\Repository::getByIdentifier ( string  $identifier)

Definition at line 49 of file Repository.php.

49 : ?Setting
50 {
51 foreach ($this->available_user_settings as $setting) {
52 $definition = new $setting();
53 if ($definition->getIdentifier() === $identifier) {
54 return $this->buildSettingFromDefinition($definition);
55 }
56 }
57 return null;
58 }
ilSetting $setting
Definition: class.ilias.php:68

References ILIAS\$setting, and ILIAS\User\Settings\Repository\buildSettingFromDefinition().

+ Here is the call graph for this function:

◆ retrieveConfigurationValue()

ILIAS\User\Settings\Repository::retrieveConfigurationValue ( string  $prefix,
string  $identifier 
)
private

Definition at line 128 of file Repository.php.

131 : bool {
132 return $this->settings->get("{$prefix}_{$identifier}", '0') === '1';
133 }

◆ storeConfiguration()

ILIAS\User\Settings\Repository::storeConfiguration ( Setting  $setting)

Definition at line 68 of file Repository.php.

68 : void
69 {
71 PropertyAttributes::ChangeableByUser->getSettingsAccessPrefix(),
72 $setting->getIdentifier(),
73 $setting->isChangeableByUser()
74 );
76 PropertyAttributes::ChangeableInLocalUserAdministration->getSettingsAccessPrefix(),
77 $setting->getIdentifier(),
78 $setting->isChangeableInLocalUserAdministration()
79 );
81 PropertyAttributes::Export->getSettingsAccessPrefix(),
82 $setting->getIdentifier(),
83 $setting->export()
84 );
85 }
storeConfigurationValue(string $prefix, string $identifier, bool $value)
Definition: Repository.php:135

References ILIAS\$setting, ILIAS\User\getSettingsAccessPrefix, and ILIAS\User\Settings\Repository\storeConfigurationValue().

+ Here is the call graph for this function:

◆ storeConfigurationValue()

ILIAS\User\Settings\Repository::storeConfigurationValue ( string  $prefix,
string  $identifier,
bool  $value 
)
private

Definition at line 135 of file Repository.php.

139 : void {
140 $this->settings->set("{$prefix}_{$identifier}", $value ? '1' : '0');
141 }

Referenced by ILIAS\User\Settings\Repository\storeConfiguration().

+ Here is the caller graph for this function:

◆ updateLegacyValues()

ILIAS\User\Settings\Repository::updateLegacyValues ( SettingDefinition  $definition)
private
Todo:
: Remove with ILIAS 12

Definition at line 111 of file Repository.php.

111 : void
112 {
113 if ($this->settings->get(
114 PropertyAttributes::ChangeableByUser->getSettingsAccessPrefix() . "_{$definition->getIdentifier()}"
115 ) !== null) {
116 return;
117 }
118
119 $legacy_disabled_value = $this->settings->get("usr_settings_disable_{$definition->getIdentifier()}", '0');
120 $this->settings->delete("usr_settings_disable_{$definition->getIdentifier()}");
122 PropertyAttributes::ChangeableByUser->getSettingsAccessPrefix(),
123 $definition->getIdentifier(),
124 $legacy_disabled_value !== '1'
125 );
126 }

References ILIAS\User\Property\getIdentifier(), ILIAS\User\getSettingsAccessPrefix, and ILIAS\Repository\settings().

+ Here is the call graph for this function:

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