From: Pawel Andruszkiewicz Date: Thu, 30 Apr 2015 12:14:51 +0000 (+0200) Subject: [Calendar] Privilege checks moved to JS. X-Git-Tag: submit/tizen_tv/20150603.064601~1^2~92 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ff6ac48ff0131f859d150d6b2c49c8b5f8b48061;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Calendar] Privilege checks moved to JS. Privileges need to be check before validation of arguments. Change-Id: Ib6f702144b9cbe508699731fe9852d792b8148f2 Signed-off-by: Pawel Andruszkiewicz --- diff --git a/src/calendar/calendar_instance.cc b/src/calendar/calendar_instance.cc index 5f59f039..efa262d4 100644 --- a/src/calendar/calendar_instance.cc +++ b/src/calendar/calendar_instance.cc @@ -18,11 +18,6 @@ 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(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(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(); auto get = [=](const std::shared_ptr& 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(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(); auto get = [=](const std::shared_ptr& 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(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(); auto get = [=](const std::shared_ptr& 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(); auto get = [=](const std::shared_ptr& 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(args), val.get()); @@ -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(args), val.get()); @@ -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(); auto get = [=](const std::shared_ptr& 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(args), val.get()); diff --git a/src/calendar/js/calendar.js b/src/calendar/js/calendar.js index f4866405..a9a6924f 100644 --- a/src/calendar/js/calendar.js +++ b/src/calendar/js/calendar.js @@ -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', diff --git a/src/calendar/js/calendar_item.js b/src/calendar/js/calendar_item.js index 8fbf07f8..d16b66a1 100644 --- a/src/calendar/js/calendar_item.js +++ b/src/calendar/js/calendar_item.js @@ -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); } diff --git a/src/calendar/js/calendar_manager.js b/src/calendar/js/calendar_manager.js index 0a46469b..99608595 100644 --- a/src/calendar/js/calendar_manager.js +++ b/src/calendar/js/calendar_manager.js @@ -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',