diff --git a/xbmc/addons/AddonInstaller.cpp b/xbmc/addons/AddonInstaller.cpp index 1db36c792da86..49a82e996ba6c 100644 --- a/xbmc/addons/AddonInstaller.cpp +++ b/xbmc/addons/AddonInstaller.cpp @@ -163,6 +163,9 @@ bool CAddonInstaller::Cancel(const CStdString &addonID) bool CAddonInstaller::PromptForInstall(const CStdString &addonID, AddonPtr &addon) { + if (!g_passwordManager.CheckMenuLock(WINDOW_ADDON_BROWSER)) + return false; + // we assume that addons that are enabled don't get to this routine (i.e. that GetAddon() has been called) if (CAddonMgr::Get().GetAddon(addonID, addon, ADDON_UNKNOWN, false)) return false; // addon is installed but disabled, and the user has specifically activated something that needs @@ -210,6 +213,9 @@ bool CAddonInstaller::PromptForInstall(const CStdString &addonID, AddonPtr &addo bool CAddonInstaller::Install(const CStdString &addonID, bool force, const CStdString &referer, bool background) { + if (!g_passwordManager.CheckMenuLock(WINDOW_ADDON_BROWSER)) + return false; + AddonPtr addon; bool addonInstalled = CAddonMgr::Get().GetAddon(addonID, addon, ADDON_UNKNOWN, false); if (addonInstalled && !force) @@ -270,6 +276,9 @@ bool CAddonInstaller::DoInstall(const AddonPtr &addon, const CStdString &hash, b bool CAddonInstaller::InstallFromZip(const CStdString &path) { + if (!g_passwordManager.CheckMenuLock(WINDOW_ADDON_BROWSER)) + return false; + // grab the descriptive XML document from the zip, and read it in CFileItemList items; // BUG: some zip files return a single item (root folder) that we think is stored, so we don't use the zip:// protocol diff --git a/xbmc/addons/GUIDialogAddonInfo.cpp b/xbmc/addons/GUIDialogAddonInfo.cpp index 3918682368d31..f393ebefc4b04 100644 --- a/xbmc/addons/GUIDialogAddonInfo.cpp +++ b/xbmc/addons/GUIDialogAddonInfo.cpp @@ -213,6 +213,9 @@ void CGUIDialogAddonInfo::OnUninstall() if (!m_localAddon.get()) return; + if (!g_passwordManager.CheckMenuLock(WINDOW_ADDON_BROWSER)) + return; + // ensure the addon is not a dependency of other installed addons if (PromptIfDependency(24037, 24047)) return; @@ -235,6 +238,9 @@ void CGUIDialogAddonInfo::OnEnable(bool enable) if (!m_localAddon.get()) return; + if (!g_passwordManager.CheckMenuLock(WINDOW_ADDON_BROWSER)) + return; + if (!enable && PromptIfDependency(24075, 24091)) return; @@ -284,6 +290,9 @@ void CGUIDialogAddonInfo::OnChangeLog() void CGUIDialogAddonInfo::OnRollback() { + if (!g_passwordManager.CheckMenuLock(WINDOW_ADDON_BROWSER)) + return; + CGUIDialogContextMenu* dlg = (CGUIDialogContextMenu*)g_windowManager.GetWindow(WINDOW_DIALOG_CONTEXT_MENU); CAddonDatabase database; database.Open(); diff --git a/xbmc/addons/GUIDialogAddonSettings.cpp b/xbmc/addons/GUIDialogAddonSettings.cpp index 580dde78d80bf..113f14b21ccf4 100644 --- a/xbmc/addons/GUIDialogAddonSettings.cpp +++ b/xbmc/addons/GUIDialogAddonSettings.cpp @@ -193,6 +193,9 @@ bool CGUIDialogAddonSettings::ShowAndGetInput(const AddonPtr &addon, bool saveTo if (!addon) return false; + if (!g_passwordManager.CheckMenuLock(WINDOW_ADDON_BROWSER)) + return false; + bool ret(false); if (addon->HasSettings()) {