summaryrefslogtreecommitdiffstats
path: root/src/Daemon/PluginManager.cpp
diff options
context:
space:
mode:
authorJiri Moskovcak <jmoskovc@redhat.com>2009-09-09 16:07:07 +0200
committerJiri Moskovcak <jmoskovc@redhat.com>2009-09-09 16:07:07 +0200
commit320b7eae1821cb3f92a8e19d6ea6fa70be552d29 (patch)
treef75b34f244fed4fabff8636ecaddeeb86c06df76 /src/Daemon/PluginManager.cpp
parentf6481dd5fb52b85fbb8c74ad3b3c476e7eba84fb (diff)
parent741de5ede91b74bb7bd4e8e23db96178056f5613 (diff)
downloadabrt-320b7eae1821cb3f92a8e19d6ea6fa70be552d29.tar.gz
abrt-320b7eae1821cb3f92a8e19d6ea6fa70be552d29.tar.xz
abrt-320b7eae1821cb3f92a8e19d6ea6fa70be552d29.zip
Merge branch 'master' of ssh://git.fedorahosted.org/git/abrt
Diffstat (limited to 'src/Daemon/PluginManager.cpp')
-rw-r--r--src/Daemon/PluginManager.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/Daemon/PluginManager.cpp b/src/Daemon/PluginManager.cpp
index 5580cdf2..412a1868 100644
--- a/src/Daemon/PluginManager.cpp
+++ b/src/Daemon/PluginManager.cpp
@@ -24,6 +24,7 @@
#include "abrtlib.h"
#include "ABRTException.h"
#include "CommLayerInner.h"
+#include "Polkit.h"
#include "PluginManager.h"
/**
@@ -228,6 +229,20 @@ void CPluginManager::RegisterPlugin(const std::string& pName)
}
}
+void CPluginManager::RegisterPluginDBUS(const std::string& pName,
+ const char * pDBUSSender)
+{
+ int polkit_result = polkit_check_authorization(pDBUSSender,
+ "org.fedoraproject.abrt.register-plugin");
+ if (polkit_result == PolkitYes)
+ {
+ RegisterPlugin(pName);
+ } else
+ {
+ log("user %s not authorized, returned %d", pDBUSSender, polkit_result);
+ }
+}
+
void CPluginManager::UnRegisterPlugin(const std::string& pName)
{
map_abrt_plugins_t::iterator abrt_plugin = m_mapABRTPlugins.find(pName);
@@ -244,6 +259,21 @@ void CPluginManager::UnRegisterPlugin(const std::string& pName)
}
}
+void CPluginManager::UnRegisterPluginDBUS(const std::string& pName,
+ const char * pDBUSSender)
+{
+ int polkit_result = polkit_check_authorization(pDBUSSender,
+ "org.fedoraproject.abrt.unregister-plugin");
+ if (polkit_result == PolkitYes)
+ {
+ UnRegisterPlugin(pName);
+ } else
+ {
+ log("user %s not authorized, returned %d", pDBUSSender, polkit_result);
+ }
+}
+
+
CAnalyzer* CPluginManager::GetAnalyzer(const std::string& pName)
{
map_plugins_t::iterator plugin = m_mapPlugins.find(pName);