@@ -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