-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(settings): Cleanup IManager and Manager type annotations
Signed-off-by: jld3103 <[email protected]>
- Loading branch information
1 parent
ba1af2b
commit b3b86a5
Showing
2 changed files
with
34 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,6 +12,7 @@ | |
* @author Roeland Jago Douma <[email protected]> | ||
* @author sualko <[email protected]> | ||
* @author Carl Schwan <[email protected]> | ||
* @author Kate Döen <[email protected]> | ||
* | ||
* @license GNU AGPL version 3 or any later version | ||
* | ||
|
@@ -90,17 +91,14 @@ public function __construct( | |
$this->subAdmin = $subAdmin; | ||
} | ||
|
||
/** @var array */ | ||
/** @var array<'admin'|'personal', list<class-string<IIconSection>>> */ | ||
protected $sectionClasses = []; | ||
|
||
/** @var array */ | ||
/** @var array<'admin'|'personal', array<string, IIconSection>> */ | ||
protected $sections = []; | ||
|
||
/** | ||
* @param string $type 'admin' or 'personal' | ||
* @param string $section Class must implement OCP\Settings\IIconSection | ||
* | ||
* @return void | ||
* @inheritdoc | ||
*/ | ||
public function registerSection(string $type, string $section) { | ||
if (!isset($this->sectionClasses[$type])) { | ||
|
@@ -111,7 +109,7 @@ public function registerSection(string $type, string $section) { | |
} | ||
|
||
/** | ||
* @param string $type 'admin' or 'personal' | ||
* @psalm-param 'admin'|'personal' $type | ||
* | ||
* @return IIconSection[] | ||
*/ | ||
|
@@ -149,6 +147,9 @@ protected function getSections(string $type): array { | |
return $this->sections[$type]; | ||
} | ||
|
||
/** | ||
* @inheritdoc | ||
*/ | ||
public function getSection(string $type, string $sectionId): ?IIconSection { | ||
if (isset($this->sections[$type]) && isset($this->sections[$type][$sectionId])) { | ||
return $this->sections[$type][$sectionId]; | ||
|
@@ -163,27 +164,23 @@ protected function isKnownDuplicateSectionId(string $sectionID): bool { | |
], true); | ||
} | ||
|
||
/** @var array */ | ||
/** @var array<class-string<ISettings>, 'admin'|'personal'> */ | ||
protected $settingClasses = []; | ||
|
||
/** @var array */ | ||
/** @var array<'admin'|'personal', array<string, list<ISettings>>> */ | ||
protected $settings = []; | ||
|
||
/** | ||
* @psam-param 'admin'|'personal' $type The type of the setting. | ||
* @param string $setting Class must implement OCP\Settings\ISettings | ||
* @param bool $allowedDelegation | ||
* | ||
* @return void | ||
* @inheritdoc | ||
*/ | ||
public function registerSetting(string $type, string $setting) { | ||
$this->settingClasses[$setting] = $type; | ||
} | ||
|
||
/** | ||
* @param string $type 'admin' or 'personal' | ||
* @psalm-param 'admin'|'personal' $type The type of the setting. | ||
* @param string $section | ||
* @param Closure $filter optional filter to apply on all loaded ISettings | ||
* @param ?Closure $filter optional filter to apply on all loaded ISettings | ||
* | ||
* @return ISettings[] | ||
*/ | ||
|
@@ -258,7 +255,7 @@ public function getAdminSections(): array { | |
/** | ||
* @inheritdoc | ||
*/ | ||
public function getAdminSettings($section, bool $subAdminOnly = false): array { | ||
public function getAdminSettings(string $section, bool $subAdminOnly = false): array { | ||
if ($subAdminOnly) { | ||
$subAdminSettingsFilter = function (ISettings $settings) { | ||
return $settings instanceof ISubAdminSettings; | ||
|
@@ -329,7 +326,7 @@ private function hasLegacyPersonalSettingsToRender(array $forms): bool { | |
/** | ||
* @inheritdoc | ||
*/ | ||
public function getPersonalSettings($section): array { | ||
public function getPersonalSettings(string $section): array { | ||
$settings = []; | ||
$appSettings = $this->getSettings('personal', $section); | ||
|
||
|
@@ -344,6 +341,9 @@ public function getPersonalSettings($section): array { | |
return $settings; | ||
} | ||
|
||
/** | ||
* @inheritdoc | ||
*/ | ||
public function getAllowedAdminSettings(string $section, IUser $user): array { | ||
$isAdmin = $this->groupManager->isAdmin($user->getUID()); | ||
if ($isAdmin) { | ||
|
@@ -375,6 +375,9 @@ public function getAllowedAdminSettings(string $section, IUser $user): array { | |
return $settings; | ||
} | ||
|
||
/** | ||
* @inheritdoc | ||
*/ | ||
public function getAllAllowedAdminSettings(IUser $user): array { | ||
$this->getSettings('admin', ''); // Make sure all the settings are loaded | ||
$settings = []; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,6 +6,7 @@ | |
* @author Christoph Wurst <[email protected]> | ||
* @author Joas Schilling <[email protected]> | ||
* @author Lukas Reschke <[email protected]> | ||
* @author Kate Döen <[email protected]> | ||
* | ||
* @license GNU AGPL version 3 or any later version | ||
* | ||
|
@@ -53,31 +54,31 @@ interface IManager { | |
public const KEY_PERSONAL_SECTION = 'personal-section'; | ||
|
||
/** | ||
* @param string $type 'admin-section' or 'personal-section' | ||
* @param string $section Class must implement OCP\Settings\ISection | ||
* @psalm-param 'admin'|'personal' $type | ||
* @param class-string<IIconSection> $section | ||
* @since 14.0.0 | ||
*/ | ||
public function registerSection(string $type, string $section); | ||
|
||
/** | ||
* @param string $type 'admin' or 'personal' | ||
* @param string $setting Class must implement OCP\Settings\ISettings | ||
* @psalm-param 'admin'|'personal' $type | ||
* @param class-string<ISettings> $setting | ||
* @since 14.0.0 | ||
*/ | ||
public function registerSetting(string $type, string $setting); | ||
|
||
/** | ||
* returns a list of the admin sections | ||
* | ||
* @return array<int, array<int, IIconSection>> array from IConSection[] where key is the priority | ||
* @return array<int, list<IIconSection>> list of sections with priority as key | ||
* @since 9.1.0 | ||
*/ | ||
public function getAdminSections(): array; | ||
|
||
/** | ||
* returns a list of the personal sections | ||
* | ||
* @return array array of ISection[] where key is the priority | ||
* @return array<int, list<IIconSection>> list of sections with priority as key | ||
* @since 13.0.0 | ||
*/ | ||
public function getPersonalSections(): array; | ||
|
@@ -87,10 +88,10 @@ public function getPersonalSections(): array; | |
* | ||
* @param string $section the section id for which to load the settings | ||
* @param bool $subAdminOnly only return settings sub admins are supposed to see (since 17.0.0) | ||
* @return array<int, array<int, ISettings>> array of ISettings[] where key is the priority | ||
* @return array<int, list<ISettings>> list of settings with priority as key | ||
* @since 9.1.0 | ||
*/ | ||
public function getAdminSettings($section, bool $subAdminOnly = false): array; | ||
public function getAdminSettings(string $section, bool $subAdminOnly = false): array; | ||
|
||
/** | ||
* Returns a list of admin settings that the given user can use for the give section | ||
|
@@ -103,7 +104,7 @@ public function getAllowedAdminSettings(string $section, IUser $user): array; | |
/** | ||
* Returns a list of admin settings that the given user can use. | ||
* | ||
* @return array<int, list<ISettings>> The array of admin settings there admin delegation is allowed. | ||
* @return list<ISettings> The array of admin settings there admin delegation is allowed. | ||
* @since 23.0.0 | ||
*/ | ||
public function getAllAllowedAdminSettings(IUser $user): array; | ||
|
@@ -112,13 +113,14 @@ public function getAllAllowedAdminSettings(IUser $user): array; | |
* returns a list of the personal settings | ||
* | ||
* @param string $section the section id for which to load the settings | ||
* @return array array of ISettings[] where key is the priority | ||
* @return array<int, list<ISettings>> list of settings with priority as key | ||
* @since 13.0.0 | ||
*/ | ||
public function getPersonalSettings($section): array; | ||
public function getPersonalSettings(string $section): array; | ||
|
||
/** | ||
* Get a specific section by type and id | ||
* @psalm-param 'admin'|'personal' $type | ||
* @since 25.0.0 | ||
*/ | ||
public function getSection(string $type, string $sectionId): ?IIconSection; | ||
|