[CallHistory] Privilege checks moved to JS.
authorPawel Andruszkiewicz <p.andruszkie@samsung.com>
Thu, 30 Apr 2015 12:22:44 +0000 (14:22 +0200)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Mon, 4 May 2015 08:02:21 +0000 (17:02 +0900)
Privileges need to be checked before validation of arguments.

Change-Id: Idd7add88ebd1ff2a4e99d5d8500cc60d33c3d08a
Signed-off-by: Pawel Andruszkiewicz <p.andruszkie@samsung.com>
src/callhistory/callhistory_api.js
src/callhistory/callhistory_instance.cc

index c8cc12d..199c95b 100644 (file)
@@ -89,6 +89,8 @@ function CallHistory() {
 };
 
 CallHistory.prototype.find = function() {
+    xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALLHISTORY_READ);
+
     var args = validator_.validateArgs(arguments, [
         {
             name : 'successCallback',
@@ -149,6 +151,8 @@ CallHistory.prototype.find = function() {
 };
 
 CallHistory.prototype.remove = function() {
+    xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALLHISTORY_WRITE);
+
     var args = validator_.validateArgs(arguments, [
         {
             name : 'entry',
@@ -170,6 +174,8 @@ CallHistory.prototype.remove = function() {
 };
 
 CallHistory.prototype.removeBatch = function() {
+    xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALLHISTORY_WRITE);
+
     var args = validator_.validateArgs(arguments, [
         {
             name : 'entries',
@@ -206,6 +212,8 @@ CallHistory.prototype.removeBatch = function() {
 };
 
 CallHistory.prototype.removeAll = function() {
+    xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALLHISTORY_WRITE);
+
     var args = validator_.validateArgs(arguments, [
         {
             name : 'successCallback',
@@ -233,6 +241,8 @@ CallHistory.prototype.removeAll = function() {
 };
 
 CallHistory.prototype.addChangeListener = function() {
+    xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALLHISTORY_READ);
+
     var args = validator_.validateArgs(arguments, [
         {
             name : 'eventCallback',
@@ -249,6 +259,8 @@ CallHistory.prototype.addChangeListener = function() {
 };
 
 CallHistory.prototype.removeChangeListener = function() {
+    xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALLHISTORY_READ);
+
     var args = validator_.validateArgs(arguments, [
         {
             name : 'watchId',
index d7f304d..4956be7 100644 (file)
 namespace extension {
 namespace callhistory {
 
-namespace {
-// The privileges that required in CallHistory API
-const std::string kPrivilegeCallHistoryRead = "http://tizen.org/privilege/callhistory.read";
-const std::string kPrivilegeCallHistoryWrite = "http://tizen.org/privilege/callhistory.write";
-}
-
 using namespace common;
 
 CallHistoryInstance::CallHistoryInstance() : history_(*this) {
@@ -42,14 +36,12 @@ CallHistoryInstance::~CallHistoryInstance() {
 
 void CallHistoryInstance::Find(const picojson::value& args, picojson::object& out) {
   LoggerD("Entered");
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCallHistoryRead, &out);
   history_.find(args.get<picojson::object>());
   ReportSuccess(out);
 }
 
 void CallHistoryInstance::Remove(const picojson::value& args, picojson::object& out) {
   LoggerD("Entered");
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCallHistoryWrite, &out);
   PlatformResult result = history_.remove(args.get<picojson::object>());
   if (result.IsSuccess()) {
     ReportSuccess(out);
@@ -60,7 +52,6 @@ void CallHistoryInstance::Remove(const picojson::value& args, picojson::object&
 
 void CallHistoryInstance::RemoveBatch(const picojson::value& args, picojson::object& out) {
   LoggerD("Entered");
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCallHistoryWrite, &out);
   PlatformResult result = history_.removeBatch(args.get<picojson::object>());
   if (result.IsSuccess()) {
     ReportSuccess(out);
@@ -71,14 +62,12 @@ void CallHistoryInstance::RemoveBatch(const picojson::value& args, picojson::obj
 
 void CallHistoryInstance::RemoveAll(const picojson::value& args, picojson::object& out) {
   LoggerD("Entered");
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCallHistoryWrite, &out);
   history_.removeAll(args.get<picojson::object>());
   ReportSuccess(out);
 }
 
 void CallHistoryInstance::AddChangeListener(const picojson::value& args, picojson::object& out) {
   LoggerD("Entered");
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCallHistoryRead, &out);
   PlatformResult result = history_.startCallHistoryChangeListener();
   if (result.IsSuccess()) {
     ReportSuccess(out);
@@ -89,7 +78,6 @@ void CallHistoryInstance::AddChangeListener(const picojson::value& args, picojso
 
 void CallHistoryInstance::RemoveChangeListener(const picojson::value& args, picojson::object& out) {
   LoggerD("Entered");
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCallHistoryRead, &out);
   PlatformResult result = history_.stopCallHistoryChangeListener();
   if (result.IsSuccess()) {
     ReportSuccess(out);