[Calendar] Privilege checks moved to JS.
authorPawel Andruszkiewicz <p.andruszkie@samsung.com>
Thu, 30 Apr 2015 12:14:51 +0000 (14:14 +0200)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Mon, 4 May 2015 07:59:56 +0000 (16:59 +0900)
Privileges need to be check before validation of arguments.

Change-Id: Ib6f702144b9cbe508699731fe9852d792b8148f2
Signed-off-by: Pawel Andruszkiewicz <p.andruszkie@samsung.com>
src/calendar/calendar_instance.cc
src/calendar/js/calendar.js
src/calendar/js/calendar_item.js
src/calendar/js/calendar_manager.js

index 5f59f03..efa262d 100644 (file)
 namespace extension {
 namespace calendar {
 
-namespace {
-const std::string kPrivilegeCalendarRead = "http://tizen.org/privilege/calendar.read";
-const std::string kPrivilegeCalendarWrite = "http://tizen.org/privilege/calendar.write";
-}
-
 using namespace common;
 using namespace extension::calendar;
 
@@ -63,7 +58,6 @@ CalendarInstance::CalendarInstance()
 CalendarInstance::~CalendarInstance() {}
 
 void CalendarInstance::CalendarGet(const JsonValue& args, JsonObject& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCalendarRead, &out);
   JsonValue val{JsonObject{}};
 
   PlatformResult status = calendar_.Get(common::JsonCast<JsonObject>(args),
@@ -76,7 +70,6 @@ void CalendarInstance::CalendarGet(const JsonValue& args, JsonObject& out) {
 }
 
 void CalendarInstance::CalendarAdd(const JsonValue& args, JsonObject& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCalendarWrite, &out);
   JsonValue val{JsonObject{}};
 
   PlatformResult status = calendar_.Add(common::JsonCast<JsonObject>(args),
@@ -90,7 +83,6 @@ void CalendarInstance::CalendarAdd(const JsonValue& args, JsonObject& out) {
 
 void CalendarInstance::CalendarAddBatch(const JsonValue& args,
                                         JsonObject& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCalendarWrite, &out);
   const double callback_id = args.get("callbackId").get<double>();
   auto get = [=](const std::shared_ptr<JsonValue>& response) -> void {
     JsonValue result = JsonValue(JsonArray());
@@ -117,7 +109,6 @@ void CalendarInstance::CalendarAddBatch(const JsonValue& args,
 }
 
 void CalendarInstance::CalendarUpdate(const JsonValue& args, JsonObject& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCalendarWrite, &out);
   JsonValue val{JsonObject{}};
 
   PlatformResult status = calendar_.Update(common::JsonCast<JsonObject>(args),
@@ -131,7 +122,6 @@ void CalendarInstance::CalendarUpdate(const JsonValue& args, JsonObject& out) {
 
 void CalendarInstance::CalendarUpdateBatch(const JsonValue& args,
                                            JsonObject& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCalendarWrite, &out);
   const double callback_id = args.get("callbackId").get<double>();
   auto get = [=](const std::shared_ptr<JsonValue>& response) -> void {
     JsonValue result = JsonValue(JsonArray());
@@ -158,7 +148,6 @@ void CalendarInstance::CalendarUpdateBatch(const JsonValue& args,
 }
 
 void CalendarInstance::CalendarRemove(const JsonValue& args, JsonObject& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCalendarWrite, &out);
   JsonValue val{JsonObject{}};
 
   PlatformResult status = calendar_.Remove(common::JsonCast<JsonObject>(args),
@@ -172,7 +161,6 @@ void CalendarInstance::CalendarRemove(const JsonValue& args, JsonObject& out) {
 
 void CalendarInstance::CalendarRemoveBatch(const JsonValue& args,
                                            JsonObject& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCalendarWrite, &out);
   const double callback_id = args.get("callbackId").get<double>();
   auto get = [=](const std::shared_ptr<JsonValue>& response) -> void {
     JsonValue result = JsonValue(JsonArray());
@@ -199,7 +187,6 @@ void CalendarInstance::CalendarRemoveBatch(const JsonValue& args,
 }
 
 void CalendarInstance::CalendarFind(const JsonValue& args, JsonObject& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCalendarRead, &out);
   const double callback_id = args.get("callbackId").get<double>();
   auto get = [=](const std::shared_ptr<JsonValue>& response) -> void {
     JsonValue result = JsonValue(JsonArray());
@@ -227,7 +214,6 @@ void CalendarInstance::CalendarFind(const JsonValue& args, JsonObject& out) {
 
 void CalendarInstance::CalendarAddChangeListener(const JsonValue& args,
                                                  JsonObject& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCalendarRead, &out);
   JsonValue val{JsonObject{}};
 
   PlatformResult status = calendar_.AddChangeListener(
@@ -241,7 +227,6 @@ void CalendarInstance::CalendarAddChangeListener(const JsonValue& args,
 
 void CalendarInstance::CalendarRemoveChangeListener(const JsonValue& args,
                                                     JsonObject& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCalendarRead, &out);
   JsonValue val{JsonObject{}};
 
   PlatformResult status = calendar_.RemoveChangeListener(
@@ -256,7 +241,6 @@ void CalendarInstance::CalendarRemoveChangeListener(const JsonValue& args,
 // CalendarManager
 void CalendarInstance::CalendarManagerAddCalendar(const JsonValue& args,
                                                   JsonObject& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCalendarWrite, &out);
   JsonValue val{JsonObject{}};
   PlatformResult status = CalendarManager::GetInstance().AddCalendar(
       common::JsonCast<JsonObject>(args), val.get<JsonObject>());
@@ -269,7 +253,6 @@ void CalendarInstance::CalendarManagerAddCalendar(const JsonValue& args,
 
 void CalendarInstance::CalendarManagerGetCalendar(const JsonValue& args,
                                                   JsonObject& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCalendarRead, &out);
   JsonValue val{JsonObject{}};
   PlatformResult status = CalendarManager::GetInstance().GetCalendar(common::JsonCast<JsonObject>(args),
                                              val.get<JsonObject>());
@@ -282,7 +265,6 @@ void CalendarInstance::CalendarManagerGetCalendar(const JsonValue& args,
 
 void CalendarInstance::CalendarManagerGetCalendars(const JsonValue& args,
                                                    JsonObject& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCalendarRead, &out);
   const double callback_id = args.get("callbackId").get<double>();
   auto get = [=](const std::shared_ptr<JsonValue>& response) -> void {
     JsonValue result = JsonValue(JsonArray());
@@ -311,7 +293,6 @@ void CalendarInstance::CalendarManagerGetCalendars(const JsonValue& args,
 
 void CalendarInstance::CalendarManagerRemoveCalendar(const JsonValue& args,
                                                      JsonObject& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeCalendarWrite, &out);
   JsonValue val{JsonObject{}};
   PlatformResult status = CalendarManager::GetInstance().RemoveCalendar(
       common::JsonCast<JsonObject>(args), val.get<JsonObject>());
index f486640..a9a6924 100644 (file)
@@ -109,6 +109,8 @@ var Calendar = function(accountId, name, type) {
 };
 
 Calendar.prototype.get = function(id) {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_READ);
+
   var args;
   if (this.type === CalendarType.TASK) {
     if (!parseInt(id) || parseInt(id) <= 0) {
@@ -150,6 +152,8 @@ Calendar.prototype.get = function(id) {
 };
 
 Calendar.prototype.add = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {
       name: 'item',
@@ -193,6 +197,8 @@ Calendar.prototype.add = function() {
 };
 
 Calendar.prototype.addBatch = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {
       name: 'items',
@@ -255,6 +261,8 @@ Calendar.prototype.addBatch = function() {
 };
 
 Calendar.prototype.update = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {
       name: 'item',
@@ -302,6 +310,8 @@ Calendar.prototype.update = function() {
 };
 
 Calendar.prototype.updateBatch = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {
       name: 'items',
@@ -363,6 +373,8 @@ Calendar.prototype.updateBatch = function() {
 };
 
 Calendar.prototype.remove = function(id) {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_WRITE);
+
   var args;
   if (this.type === CalendarType.TASK) {
     if (!parseInt(id) || parseInt(id) <= 0) {
@@ -391,6 +403,8 @@ Calendar.prototype.remove = function(id) {
 };
 
 Calendar.prototype.removeBatch = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {
       name: 'ids',
@@ -428,6 +442,8 @@ Calendar.prototype.removeBatch = function() {
 };
 
 Calendar.prototype.find = function(successCallback, errorCallback, filter, sortMode) {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_READ);
+
   var args = validator_.validateArgs(arguments, [
     {
       name: 'successCallback',
@@ -571,6 +587,8 @@ function _CalendarChangeCallback(type, event) {
 }
 
 Calendar.prototype.addChangeListener = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_READ);
+
   var args = validator_.validateArgs(arguments, [{
     name: 'successCallback',
     type: types_.LISTENER,
@@ -607,6 +625,8 @@ Calendar.prototype.addChangeListener = function() {
 };
 
 Calendar.prototype.removeChangeListener = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_READ);
+
   var args = validator_.validateArgs(arguments, [
     {
       name: 'watchId',
index 8fbf07f..d16b66a 100644 (file)
@@ -2,8 +2,6 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-var _PRIVILEGE_CALENDAR_READ = "http://tizen.org/privilege/calendar.read";
-
 var CalendarTextFormat = {
   ICALENDAR_20: 'ICALENDAR_20',
   VCALENDAR_10: 'VCALENDAR_10'
@@ -335,7 +333,8 @@ var CalendarItem = function(data) {
 };
 
 CalendarItem.prototype.convertToString = function() {
-  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_CALENDAR_READ);
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_READ);
+
   var args = validator_.validateArgs(arguments, [
     {
       name: 'format',
@@ -420,7 +419,8 @@ CalendarItem.prototype.convertToString = function() {
 };
 
 CalendarItem.prototype.clone = function() {
-  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_CALENDAR_READ);
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_READ);
+
   var tmp = _itemConverter.toTizenObject(_itemConverter.fromTizenObject(this));
 
   tmp.id = null;
@@ -672,7 +672,8 @@ CalendarEvent.prototype = new CalendarItem();
 CalendarEvent.prototype.constructor = CalendarEvent;
 
 CalendarEvent.prototype.expandRecurrence = function(startDate, endDate, successCallback, errorCallback) {
-  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_CALENDAR_READ);
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_READ);
+
   if (arguments.length < 3) {
     throw new WebAPIException(WebAPIException.TYPE_MISMATCH_ERR);
   }
index 0a46469..9960859 100644 (file)
@@ -13,6 +13,8 @@ var DefaultCalendarId = {
 };
 
 CalendarManager.prototype.getCalendars = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_READ);
+
   var args = validator_.validateArgs(arguments, [{
     name: 'type',
     type: types_.ENUM,
@@ -50,6 +52,7 @@ CalendarManager.prototype.getCalendars = function() {
 };
 
 CalendarManager.prototype.getUnifiedCalendar = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_READ);
 
   var args = validator_.validateArgs(arguments, [{
     name: 'type',
@@ -57,8 +60,6 @@ CalendarManager.prototype.getUnifiedCalendar = function() {
     values: Object.keys(CalendarType)
   }]);
 
-  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_CALENDAR_READ);
-
   return new Calendar(new InternalCalendar({
     type: args.type,
     isUnified: true
@@ -66,6 +67,7 @@ CalendarManager.prototype.getUnifiedCalendar = function() {
 };
 
 CalendarManager.prototype.getDefaultCalendar = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_READ);
 
   var args = validator_.validateArgs(arguments, [{
     name: 'type',
@@ -74,12 +76,11 @@ CalendarManager.prototype.getDefaultCalendar = function() {
   }
   ]);
 
-  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_CALENDAR_READ);
-
   return this.getCalendar(args.type, DefaultCalendarId[args.type]);
 };
 
 CalendarManager.prototype.getCalendar = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_READ);
 
   var args = validator_.validateArgs(arguments, [{
     name: 'type',
@@ -112,6 +113,7 @@ CalendarManager.prototype.getCalendar = function() {
 };
 
 CalendarManager.prototype.addCalendar = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_WRITE);
 
   var args = validator_.validateArgs(arguments, [{
     name: 'calendar',
@@ -135,6 +137,7 @@ CalendarManager.prototype.addCalendar = function() {
 };
 
 CalendarManager.prototype.removeCalendar = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_WRITE);
 
   var args = validator_.validateArgs(arguments, [{
     name: 'type',