diff options
| author | dnovotny <danny@rawhide.localdomain> | 2009-09-09 07:54:28 -0400 |
|---|---|---|
| committer | dnovotny <danny@rawhide.localdomain> | 2009-09-09 07:54:28 -0400 |
| commit | d04a619443303243a649f3f1baa20ad2f3ae1d89 (patch) | |
| tree | 3f49b750a397a1ceb2ab860611b908c907a8bac3 /src/Daemon/Settings.cpp | |
| parent | 173490efd5daeefa4622d353ca3b1587c56f64ca (diff) | |
| download | abrt-d04a619443303243a649f3f1baa20ad2f3ae1d89.tar.gz abrt-d04a619443303243a649f3f1baa20ad2f3ae1d89.tar.xz abrt-d04a619443303243a649f3f1baa20ad2f3ae1d89.zip | |
added polkit security check in SetSettings
Diffstat (limited to 'src/Daemon/Settings.cpp')
| -rw-r--r-- | src/Daemon/Settings.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/Daemon/Settings.cpp b/src/Daemon/Settings.cpp index 086c18a..0eea2bd 100644 --- a/src/Daemon/Settings.cpp +++ b/src/Daemon/Settings.cpp @@ -1,6 +1,7 @@ #include "Settings.h" #include "abrtlib.h" #include "abrt_types.h" +#include "Polkit.h" #include <fstream> #define SECTION_COMMON "Common" @@ -424,9 +425,22 @@ void SaveSettings() } /* dbus call to change some .conf file data */ -void SetSettings(const map_abrt_settings_t& pSettings) +void SetSettings(const map_abrt_settings_t& pSettings, const char * dbus_sender) { bool dirty = false; + int polkit_result; + + if(( polkit_result = polkit_check_authorization(dbus_sender, + "org.fedoraproject.abrt.save-settings")) != PolkitYes) + { + log("user %s not authorized, returned %d", dbus_sender, + polkit_result ); + return; + } else + { + log("user %s succesfully authorized", dbus_sender); + } + map_abrt_settings_t::const_iterator it = pSettings.find(SECTION_COMMON); map_abrt_settings_t::const_iterator end = pSettings.end(); if (it != end) |
