Skip to content

Commit 6b82b50

Browse files
committed
fix: Fix empty sections appearing in search results
Signed-off-by: Christopher Ng <chrng8@gmail.com>
1 parent 05886d2 commit 6b82b50

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

apps/settings/lib/Search/SectionSearch.php

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,17 +74,33 @@ public function getOrder(string $route, array $routeParameters): int {
7474
public function search(IUser $user, ISearchQuery $query): SearchResult {
7575
$isAdmin = $this->groupManager->isAdmin($user->getUID());
7676

77+
$personalSections = $this->settingsManager->getPersonalSections();
78+
foreach ($personalSections as $priority => &$sections) {
79+
$sections = array_values(array_filter(
80+
$sections,
81+
fn (IIconSection $section) => !empty($this->settingsManager->getPersonalSettings($section->getID())),
82+
));
83+
}
84+
85+
$adminSections = $this->settingsManager->getAdminSections();
86+
foreach ($adminSections as $priority => &$sections) {
87+
$sections = array_values(array_filter(
88+
$sections,
89+
fn (IIconSection $section) => !empty($this->settingsManager->getAllowedAdminSettings($section->getID(), $user)),
90+
));
91+
}
92+
7793
$result = $this->searchSections(
7894
$query,
79-
$this->settingsManager->getPersonalSections(),
95+
$personalSections,
8096
$isAdmin ? $this->l->t('Personal') : '',
8197
'settings.PersonalSettings.index'
8298
);
8399

84100
if ($this->groupManager->isAdmin($user->getUID())) {
85101
$result = array_merge($result, $this->searchSections(
86102
$query,
87-
$this->settingsManager->getAdminSections(),
103+
$adminSections,
88104
$this->l->t('Administration'),
89105
'settings.AdminSettings.index'
90106
));

0 commit comments

Comments
 (0)