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',