From: Jakub Skowron Date: Wed, 21 Sep 2016 12:41:45 +0000 (+0200) Subject: [HAM] check privilege and throw NotSupportedError from readRecorderData X-Git-Tag: accepted/tizen/common/20160922.120700~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7da7ccb3917606f57dcde12c8dba649eaa1b4c55;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [HAM] check privilege and throw NotSupportedError from readRecorderData Added check if given HumanActivityRecorderType is supported. [Verification] Code compiles without errors. 100% TCT pass rate (humanactivitymonitor) Change-Id: I8a7ee7ec24eb3b144f651cc244c307d128ad7ac0 Signed-off-by: Jakub Skowron --- diff --git a/src/humanactivitymonitor/humanactivitymonitor_instance.cc b/src/humanactivitymonitor/humanactivitymonitor_instance.cc index 5000cb4..89eeb67 100755 --- a/src/humanactivitymonitor/humanactivitymonitor_instance.cc +++ b/src/humanactivitymonitor/humanactivitymonitor_instance.cc @@ -335,6 +335,7 @@ void HumanActivityMonitorInstance::HumanActivityMonitorManagerStopRecorder( void HumanActivityMonitorInstance::HumanActivityMonitorManagerReadRecorderData( const picojson::value& args, picojson::object& out) { LoggerD("Enter"); + CHECK_PRIVILEGE_ACCESS(kPrivilegeHealthInfo, &out); CHECK_EXIST(args, "type", out) CHECK_EXIST(args, "query", out) @@ -347,6 +348,12 @@ void HumanActivityMonitorInstance::HumanActivityMonitorManagerReadRecorderData( return; } + /* check if given human activity recorder type is supported */ + if (!manager_->IsSupported(type)) { + LogAndReportError(PlatformResult(ErrorCode::NOT_SUPPORTED_ERR,"NOT_SUPPORTED_ERR"), &out); + return; + } + const auto callback_id = args.get("callbackId").get(); auto get = [this, type, query, callback_id]() -> void { diff --git a/src/humanactivitymonitor/humanactivitymonitor_manager.cc b/src/humanactivitymonitor/humanactivitymonitor_manager.cc index 387220f..c8e1ab9 100755 --- a/src/humanactivitymonitor/humanactivitymonitor_manager.cc +++ b/src/humanactivitymonitor/humanactivitymonitor_manager.cc @@ -398,7 +398,7 @@ class HumanActivityMonitorManager::Monitor { return LogAndCreateResult(ErrorCode::NOT_SUPPORTED_ERR,"NOT_SUPPORTED_ERR"); } - private: + public: PlatformResult IsSupported() { ScopeLogger(type()); @@ -419,6 +419,7 @@ class HumanActivityMonitorManager::Monitor { } } + private: std::string type_; common::optional is_supported_; JsonCallback event_callback_; @@ -1495,6 +1496,10 @@ PlatformResult HumanActivityMonitorManager::Init() { return PlatformResult(ErrorCode::NO_ERROR); } +PlatformResult HumanActivityMonitorManager::IsSupported( const std::string& type ) { + return this->GetMonitor(type)->IsSupported(); +} + PlatformResult HumanActivityMonitorManager::SetListener( const std::string& type, JsonCallback callback, const picojson::value& args) { diff --git a/src/humanactivitymonitor/humanactivitymonitor_manager.h b/src/humanactivitymonitor/humanactivitymonitor_manager.h index caca7a3..8cd82be 100755 --- a/src/humanactivitymonitor/humanactivitymonitor_manager.h +++ b/src/humanactivitymonitor/humanactivitymonitor_manager.h @@ -38,6 +38,9 @@ class HumanActivityMonitorManager { common::PlatformResult Init(); + /* checks if given HumanActivityRecorderType is supported */ + common::PlatformResult IsSupported( const std::string& type ); + common::PlatformResult SetListener(const std::string& type, JsonCallback callback, const picojson::value& args);