[Calendar] Added privilege checks.
authorPiotr Kosko <p.kosko@samsung.com>
Thu, 19 Mar 2015 09:31:51 +0000 (10:31 +0100)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Wed, 25 Mar 2015 14:49:15 +0000 (23:49 +0900)
Change-Id: I00ce694ba9cb74731e5069cee8e5ef1b49d272ca
Signed-off-by: Piotr Kosko <p.kosko@samsung.com>
src/calendar/calendar_instance.cc
src/calendar/js/calendar_item.js
src/calendar/js/calendar_manager.js

index fba2446370df6eda10cb283caba7d96c4d49c788..86aec2ea4a87c24b01aa40f5ff1e50b6b1f589c9 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;
 
@@ -62,6 +67,7 @@ CalendarInstance::CalendarInstance() {
 CalendarInstance::~CalendarInstance() {}
 
 void CalendarInstance::CalendarGet(const JsonValue& args, JsonObject& out) {
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeCalendarRead, &out);
   JsonValue val{JsonObject{}};
 
   PlatformResult status = Calendar::GetInstance().Get(
@@ -74,6 +80,7 @@ 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::GetInstance().Add(
@@ -87,6 +94,7 @@ 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());
@@ -113,6 +121,7 @@ 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::GetInstance().Update(
@@ -126,6 +135,7 @@ 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());
@@ -152,6 +162,7 @@ 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::GetInstance().Remove(
@@ -165,6 +176,7 @@ 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());
@@ -191,6 +203,7 @@ 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());
@@ -218,6 +231,7 @@ 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::GetInstance().AddChangeListener(
@@ -231,6 +245,7 @@ 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::GetInstance().RemoveChangeListener(
@@ -245,6 +260,7 @@ 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>());
@@ -257,6 +273,7 @@ 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>());
@@ -269,6 +286,7 @@ 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());
@@ -297,6 +315,7 @@ 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 a316e8b2ecd1110ca99f239f34da2c0fa1ba8514..8fbf07f8af367591b2216b9c85009cc24ae19683 100644 (file)
@@ -2,6 +2,8 @@
 // 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'
@@ -333,6 +335,7 @@ var CalendarItem = function(data) {
 };
 
 CalendarItem.prototype.convertToString = function() {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_CALENDAR_READ);
   var args = validator_.validateArgs(arguments, [
     {
       name: 'format',
@@ -417,6 +420,7 @@ CalendarItem.prototype.convertToString = function() {
 };
 
 CalendarItem.prototype.clone = function() {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_CALENDAR_READ);
   var tmp = _itemConverter.toTizenObject(_itemConverter.fromTizenObject(this));
 
   tmp.id = null;
@@ -668,6 +672,7 @@ CalendarEvent.prototype = new CalendarItem();
 CalendarEvent.prototype.constructor = CalendarEvent;
 
 CalendarEvent.prototype.expandRecurrence = function(startDate, endDate, successCallback, errorCallback) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_CALENDAR_READ);
   if (arguments.length < 3) {
     throw new WebAPIException(WebAPIException.TYPE_MISMATCH_ERR);
   }
index 144bb5be729fbc30a5e5e588f5882115b986cb8b..0a46469b6636522a21784960a89c66eb9193ed79 100644 (file)
@@ -5,6 +5,7 @@
 // class CalendarManager
 var CalendarManager = function() {};
 
+var _PRIVILEGE_CALENDAR_READ = "http://tizen.org/privilege/calendar.read";
 // IDs defined in C-API calendar_types2.h
 var DefaultCalendarId = {
   EVENT: 1, // DEFAULT_EVENT_CALENDAR_BOOK_ID
@@ -56,6 +57,8 @@ CalendarManager.prototype.getUnifiedCalendar = function() {
     values: Object.keys(CalendarType)
   }]);
 
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_CALENDAR_READ);
+
   return new Calendar(new InternalCalendar({
     type: args.type,
     isUnified: true
@@ -71,6 +74,8 @@ CalendarManager.prototype.getDefaultCalendar = function() {
   }
   ]);
 
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_CALENDAR_READ);
+
   return this.getCalendar(args.type, DefaultCalendarId[args.type]);
 };