Skip to content

Commit

Permalink
Don't expose invisible settings to JSONRPC
Browse files Browse the repository at this point in the history
  • Loading branch information
t-nelson committed Apr 5, 2014
1 parent 641cc12 commit af4299c
Showing 1 changed file with 22 additions and 13 deletions.
35 changes: 22 additions & 13 deletions xbmc/interfaces/json-rpc/SettingsOperations.cpp
Expand Up @@ -115,11 +115,14 @@ JSONRPC_STATUS CSettingsOperations::GetCategories(const CStdString &method, ITra
SettingList settings = (*itGroup)->GetSettings(level);
for (SettingList::const_iterator itSetting = settings.begin(); itSetting != settings.end(); ++itSetting)
{
CVariant varSetting(CVariant::VariantTypeObject);
if (!SerializeSetting(*itSetting, varSetting))
continue;

varGroup["settings"].push_back(varSetting);
if ((*itSetting)->IsVisible())
{
CVariant varSetting(CVariant::VariantTypeObject);
if (!SerializeSetting(*itSetting, varSetting))
continue;

varGroup["settings"].push_back(varSetting);
}
}

varCategory["groups"].push_back(varGroup);
Expand Down Expand Up @@ -174,11 +177,14 @@ JSONRPC_STATUS CSettingsOperations::GetSettings(const CStdString &method, ITrans
SettingList settings = (*itGroup)->GetSettings(level);
for (SettingList::const_iterator itSetting = settings.begin(); itSetting != settings.end(); ++itSetting)
{
CVariant varSetting(CVariant::VariantTypeObject);
if (!SerializeSetting(*itSetting, varSetting))
continue;

result["settings"].push_back(varSetting);
if ((*itSetting)->IsVisible())
{
CVariant varSetting(CVariant::VariantTypeObject);
if (!SerializeSetting(*itSetting, varSetting))
continue;

result["settings"].push_back(varSetting);
}
}
}
found = true;
Expand All @@ -200,7 +206,8 @@ JSONRPC_STATUS CSettingsOperations::GetSettingValue(const CStdString &method, IT
string settingId = parameterObject["setting"].asString();

CSetting* setting = CSettings::Get().GetSetting(settingId);
if (setting == NULL)
if (setting == NULL ||
!setting->IsVisible())
return InvalidParams;

CVariant value;
Expand Down Expand Up @@ -245,7 +252,8 @@ JSONRPC_STATUS CSettingsOperations::SetSettingValue(const CStdString &method, IT
CVariant value = parameterObject["value"];

CSetting* setting = CSettings::Get().GetSetting(settingId);
if (setting == NULL)
if (setting == NULL ||
!setting->IsVisible())
return InvalidParams;

switch (setting->GetType())
Expand Down Expand Up @@ -305,7 +313,8 @@ JSONRPC_STATUS CSettingsOperations::ResetSettingValue(const CStdString &method,
string settingId = parameterObject["setting"].asString();

CSetting* setting = CSettings::Get().GetSetting(settingId);
if (setting == NULL)
if (setting == NULL ||
!setting->IsVisible())
return InvalidParams;

switch (setting->GetType())
Expand Down

0 comments on commit af4299c

Please sign in to comment.