Index: app/SettingsBase.cpp =================================================================== --- app/SettingsBase.cpp +++ app/SettingsBase.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include #include "BaseData.h" @@ -222,16 +223,18 @@ // scan for any modules at this level and add them for (int i = 0; i < modules.size(); ++i) { const KService::Ptr entry = modules.at(i); - const QString category = entry->property("X-KDE-System-Settings-Parent-Category").toString(); - const QString category2 = entry->property("X-KDE-System-Settings-Parent-Category-V2").toString(); - if( !parent->category().isEmpty() && (category == parent->category() || category2 == parent->category()) ) { - // Add the module info to the menu - MenuItem * infoItem = new MenuItem(false, parent); - infoItem->setService( entry ); - removeList.append( modules.at(i) ); - } + if (KAuthorized::authorizeControlModule( entry->storageId() )) + { + const QString category = entry->property("X-KDE-System-Settings-Parent-Category").toString(); + const QString category2 = entry->property("X-KDE-System-Settings-Parent-Category-V2").toString(); + if( !parent->category().isEmpty() && (category == parent->category() || category2 == parent->category()) ) { + // Add the module info to the menu + MenuItem * infoItem = new MenuItem(false, parent); + infoItem->setService( entry ); + removeList.append( modules.at(i) ); + } + } } - for (int i = 0; i < removeList.size(); ++i) { modules.removeOne( removeList.at(i) ); }