Merge pull request #4927 from mkortstiege/masterprompt
authorjmarshallnz <jcmarsha@gmail.com>
Thu, 26 Jun 2014 20:05:52 +0000 (08:05 +1200)
committerTrent Nelson <trent.nelson@pivosgroup.com>
Tue, 8 Jul 2014 07:26:52 +0000 (15:26 +0800)
prompt for master pin in case the addon manager is locked

xbmc/addons/AddonInstaller.cpp
xbmc/addons/GUIDialogAddonInfo.cpp
xbmc/addons/GUIDialogAddonSettings.cpp

index 1db36c7..49a82e9 100644 (file)
@@ -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
index 3918682..f393ebe 100644 (file)
@@ -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();
index 580dde7..113f14b 100644 (file)
@@ -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())
   {