From f3014a8ddc4eadad4b7bf3d4bf813830d0a98f09 Mon Sep 17 00:00:00 2001
From: Pawel Andruszkiewicz
Date: Thu, 19 Mar 2015 16:17:14 +0100
Subject: [PATCH] [Push] Added privilege checks.
Change-Id: I6c0051634fbc8870ab2868cb57f876ac04a8cbf3
---
src/push/push_instance.cc | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/src/push/push_instance.cc b/src/push/push_instance.cc
index 5b1821a0..fc169368 100644
--- a/src/push/push_instance.cc
+++ b/src/push/push_instance.cc
@@ -11,6 +11,12 @@
namespace extension {
namespace push {
+namespace {
+
+const std::string kPrivilegePush = "http://tizen.org/privilege/push";
+
+} // namespace
+
PushInstance::PushInstance(): m_ignoreNotificationEvents(true) {
LoggerD("Enter");
using std::placeholders::_1;
@@ -42,6 +48,9 @@ PushInstance::PushInstance(): m_ignoreNotificationEvents(true) {
void PushInstance::registerService(const picojson::value& args,
picojson::object& out) {
LoggerD("Enter");
+
+ CHECK_PRIVILEGE_ACCESS(kPrivilegePush, &out);
+
PushManager::ApplicationControl appControl;
appControl.operation = args.get("operation").get();
if (args.get("uri").is()) {
@@ -80,6 +89,9 @@ void PushInstance::registerService(const picojson::value& args,
void PushInstance::unregisterService(const picojson::value& args,
picojson::object& out) {
LoggerD("Enter");
+
+ CHECK_PRIVILEGE_ACCESS(kPrivilegePush, &out);
+
common::PlatformResult result = PushManager::getInstance()
.unregisterService(args.get("callbackId").get());
if (result.IsError()) {
@@ -94,6 +106,9 @@ void PushInstance::unregisterService(const picojson::value& args,
void PushInstance::connectService(const picojson::value& args,
picojson::object& out) {
LoggerD("Enter");
+
+ CHECK_PRIVILEGE_ACCESS(kPrivilegePush, &out);
+
m_ignoreNotificationEvents = false;
picojson::value result;
ReportSuccess(result, out);
@@ -102,6 +117,9 @@ void PushInstance::connectService(const picojson::value& args,
void PushInstance::disconnectService(const picojson::value& args,
picojson::object& out) {
LoggerD("Enter");
+
+ CHECK_PRIVILEGE_ACCESS(kPrivilegePush, &out);
+
m_ignoreNotificationEvents = true;
picojson::value result;
ReportSuccess(result, out);
@@ -110,6 +128,9 @@ void PushInstance::disconnectService(const picojson::value& args,
void PushInstance::getRegistrationId(const picojson::value& args,
picojson::object& out) {
LoggerD("Enter");
+
+ CHECK_PRIVILEGE_ACCESS(kPrivilegePush, &out);
+
std::string id;
common::PlatformResult result = PushManager::getInstance()
.getRegistrationId(id);
@@ -126,6 +147,9 @@ void PushInstance::getRegistrationId(const picojson::value& args,
void PushInstance::getUnreadNotifications(const picojson::value& args,
picojson::object& out) {
LoggerD("Enter");
+
+ CHECK_PRIVILEGE_ACCESS(kPrivilegePush, &out);
+
common::PlatformResult result = PushManager::getInstance()
.getUnreadNotifications();
if (result.IsError()) {
--
2.34.1