Revert "[Content] Moved checking privileges to JS layer."
authorTomasz Marciniak <t.marciniak@samsung.com>
Wed, 4 Nov 2015 11:48:55 +0000 (12:48 +0100)
committerTomasz Marciniak <t.marciniak@samsung.com>
Wed, 2 Dec 2015 11:43:24 +0000 (12:43 +0100)
This reverts commit 1d903b6b966b48c7bdc46dc772b8e85e8e47b126.
This also applies changes from commit eca7fd3484d8aab3b6b196c711c80097079a9d41

[Verification] Code compiles. TCT pass rate 100%

Change-Id: I431661c863f96430a414bc0cdd3fa0ce0c6e2037
Signed-off-by: Tomasz Marciniak <t.marciniak@samsung.com>
src/content/content_instance.cc
src/content/js/common.js
src/content/js/manager.js
src/content/js/playlist.js

index 362c55bc4557a304371121a899abfef10e87388f..d4acdedeb1b9b8597c32131a0020433d1ef4a558 100755 (executable)
 namespace extension {
 namespace content {
 
+namespace {
+// The privileges that required in Content API
+const std::string kPrivilegeContentRead = "http://tizen.org/privilege/content.read";
+const std::string kPrivilegeContentWrite = "http://tizen.org/privilege/content.write";
+
+} // namespace
+
 using common::tools::ReportSuccess;
 using common::tools::ReportError;
 using common::PlatformResult;
@@ -342,6 +349,8 @@ static void changedContentV2Callback(media_content_error_e error,
 
 void ContentInstance::ContentManagerUpdate(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentWrite, &out);
+
   if (ContentManager::getInstance()->isConnected()) {
     int ret = ContentManager::getInstance()->update(args);
     if (ret != 0) {
@@ -355,6 +364,8 @@ void ContentInstance::ContentManagerUpdate(const picojson::value& args, picojson
 
 void ContentInstance::ContentManagerUpdatebatch(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  LoggerE("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentWrite, &out);
   double callbackId = args.get("callbackId").get<double>();
 
   auto cbData = std::shared_ptr<ReplyCallbackData>(new ReplyCallbackData);
@@ -392,6 +403,8 @@ void ContentInstance::ContentManagerGetdirectories(const picojson::value& args,
 }
 void ContentInstance::ContentManagerFind(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentRead, &out);
+
   CHECK_EXIST(args, "callbackId", out)
 
   double callbackId = args.get("callbackId").get<double>();
@@ -412,6 +425,8 @@ void ContentInstance::ContentManagerFind(const picojson::value& args, picojson::
 
 void ContentInstance::ContentManagerScanfile(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentWrite, &out);
+
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "contentURI", out)
 
@@ -432,6 +447,8 @@ void ContentInstance::ContentManagerScanfile(const picojson::value& args, picojs
 
 void ContentInstance::ContentManagerScanDirectory(const picojson::value& args, picojson::object& out) {
   LoggerD("Enter");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentWrite, &out);
+
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "contentDirURI", out)
   CHECK_EXIST(args, "recursive", out)
@@ -450,6 +467,8 @@ void ContentInstance::ContentManagerScanDirectory(const picojson::value& args, p
 
 void ContentInstance::ContentManagerCancelScanDirectory(const picojson::value& args, picojson::object& out) {
   LoggerD("Enter");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentWrite, &out);
+
   CHECK_EXIST(args, "contentDirURI", out)
   const std::string& content_dir_uri = args.get("contentDirURI").get<std::string>();
 
@@ -463,6 +482,8 @@ void ContentInstance::ContentManagerCancelScanDirectory(const picojson::value& a
 void ContentInstance::ContentManagerSetchangelistener(const picojson::value& args,
                                                       picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentRead, &out);
+
   CHECK_EXIST(args, "listenerId", out)
 
   if (!listener_data_) {
@@ -492,6 +513,8 @@ void ContentInstance::ContentManagerSetchangelistener(const picojson::value& arg
 
 void ContentInstance::ContentManagerUnsetchangelistener(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentRead, &out);
+
   if (ContentManager::getInstance()->unSetChangeListener().IsError()) {
     LoggerD("unsuccesfull deregistering of callback");
   }
@@ -502,6 +525,8 @@ void ContentInstance::ContentManagerUnsetchangelistener(const picojson::value& a
 
 void ContentInstance::ContentManagerGetplaylists(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentRead, &out);
+
   CHECK_EXIST(args, "callbackId", out)
 
   double callbackId = args.get("callbackId").get<double>();
@@ -524,6 +549,8 @@ void ContentInstance::ContentManagerGetplaylists(const picojson::value& args, pi
 }
 void ContentInstance::ContentManagerCreateplaylist(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentWrite, &out);
+
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "name", out)
 
@@ -545,6 +572,8 @@ void ContentInstance::ContentManagerCreateplaylist(const picojson::value& args,
 }
 void ContentInstance::ContentManagerRemoveplaylist(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentWrite, &out);
+
   double callbackId = args.get("callbackId").get<double>();
 
   auto cbData = std::shared_ptr<ReplyCallbackData>(new ReplyCallbackData);
@@ -566,6 +595,8 @@ void ContentInstance::ContentManagerRemoveplaylist(const picojson::value& args,
 
 void ContentInstance::ContentManagerPlaylistAdd(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentWrite, &out);
+
   if(ContentManager::getInstance()->isConnected()) {
     std::string playlist_id = args.get("playlistId").get<std::string>();
     std::string content_id = args.get("contentId").get<std::string>();
@@ -582,6 +613,8 @@ void ContentInstance::ContentManagerPlaylistAdd(const picojson::value& args, pic
 
 void ContentInstance::ContentManagerPlaylistAddbatch(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentWrite, &out);
+
   double callbackId = args.get("callbackId").get<double>();
 
   auto cbData = std::shared_ptr<ReplyCallbackData>(new ReplyCallbackData);
@@ -601,6 +634,8 @@ void ContentInstance::ContentManagerPlaylistAddbatch(const picojson::value& args
 
 void ContentInstance::ContentManagerPlaylistGet(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentRead, &out);
+
   double callbackId = args.get("callbackId").get<double>();
 
   auto cbData = std::shared_ptr<ReplyCallbackData>(new ReplyCallbackData);
@@ -619,6 +654,8 @@ void ContentInstance::ContentManagerPlaylistGet(const picojson::value& args, pic
 
 void ContentInstance::ContentManagerPlaylistRemove(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentWrite, &out);
+
   if(ContentManager::getInstance()->isConnected()) {
     std::string playlist_id = args.get("playlistId").get<std::string>();
     int member_id = args.get("memberId").get<double>();
@@ -635,6 +672,8 @@ void ContentInstance::ContentManagerPlaylistRemove(const picojson::value& args,
 
 void ContentInstance::ContentManagerPlaylistRemovebatch(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentWrite, &out);
+
   double callbackId = args.get("callbackId").get<double>();
 
   auto cbData = std::shared_ptr<ReplyCallbackData>(new ReplyCallbackData);
@@ -654,6 +693,8 @@ void ContentInstance::ContentManagerPlaylistRemovebatch(const picojson::value& a
 
 void ContentInstance::ContentManagerPlaylistSetorder(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentWrite, &out);
+
   double callbackId = args.get("callbackId").get<double>();
 
   auto cbData = std::shared_ptr<ReplyCallbackData>(new ReplyCallbackData);
@@ -672,6 +713,8 @@ void ContentInstance::ContentManagerPlaylistSetorder(const picojson::value& args
 
 void ContentInstance::ContentManagerPlaylistMove(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentWrite, &out);
+
   double callbackId = args.get("callbackId").get<double>();
 
   auto cbData = std::shared_ptr<ReplyCallbackData>(new ReplyCallbackData);
@@ -723,6 +766,8 @@ void ContentInstance::PlaylistGetName(const picojson::value& args, picojson::obj
 
 void ContentInstance::PlaylistSetName(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentWrite, &out);
+
   int ret;
   CHECK_EXIST(args, "id", out)
   CHECK_EXIST(args, "name", out)
@@ -752,6 +797,8 @@ void ContentInstance::PlaylistGetThumbnailUri(const picojson::value& args, picoj
 
 void ContentInstance::PlaylistSetThumbnailUri(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeContentWrite, &out);
+
   int ret;
   CHECK_EXIST(args, "id", out)
   CHECK_EXIST(args, "uri", out)
index b3ddffc001de0e9ff7c0f3e6f9b243d908c69234..e60816bbde457a6981121d31a573624e151c437a 100755 (executable)
@@ -20,7 +20,6 @@ var converter_ = utils_.converter;
 var validator_ = utils_.validator;
 var types_ = validator_.Types;
 var native_ = new xwalk.utils.NativeManager(extension);
-var privilege_ = xwalk.utils.privilege;
 
 var EditManager = function() {
   this.isAllowed = false;
index 32643c489115d29df2c658ad647ec654b776357e..7b610442f6863e506d5efaa91d22e6c19a9991a0 100755 (executable)
@@ -30,8 +30,6 @@ function ContentManager() {
 }
 
 ContentManager.prototype.update = function(content) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'content', type: types_.PLATFORM_OBJECT, values: Content}
   ]);
@@ -48,8 +46,6 @@ ContentManager.prototype.update = function(content) {
 };
 
 ContentManager.prototype.updateBatch = function(contents, successCallback, errorCallback) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'contents', type: types_.ARRAY, values: Content},
     {name: 'successCallback', type: types_.FUNCTION, optional: true, nullable: true},
@@ -95,12 +91,14 @@ ContentManager.prototype.getDirectories = function(successCallback, errorCallbac
     native_.callIfPossible(args.successCallback, out);
   };
 
-  native_.call('ContentManager_getDirectories', null, callback);
+  var result = native_.call('ContentManager_getDirectories', null, callback);
+
+  if (native_.isFailure(result)) {
+    throw native_.getErrorObject(result);
+  }
 };
 
 ContentManager.prototype.find = function(successCallback, errorCallback, directoryId, filter, sortMode, count, offset) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_READ);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'successCallback', type: types_.FUNCTION},
     {name: 'errorCallback', type: types_.FUNCTION, optional: true, nullable: true},
@@ -153,8 +151,6 @@ ContentManager.prototype.find = function(successCallback, errorCallback, directo
 };
 
 ContentManager.prototype.scanFile = function(contentURI, successCallback, errorCallback) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'contentURI', type: types_.STRING},
     {name: 'successCallback', type: types_.FUNCTION, optional: true, nullable: true},
@@ -186,8 +182,6 @@ ContentManager.prototype.scanFile = function(contentURI, successCallback, errorC
 };
 
 ContentManager.prototype.scanDirectory = function(contentDirURI, recursive, successCallback, errorCallback) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'contentDirURI', type: types_.STRING},
     {name: 'recursive', type: types_.BOOLEAN},
@@ -221,8 +215,6 @@ ContentManager.prototype.scanDirectory = function(contentDirURI, recursive, succ
 };
 
 ContentManager.prototype.cancelScanDirectory = function(contentDirURI) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'contentDirURI', type: types_.STRING}
   ]);
@@ -244,8 +236,6 @@ ContentManager.prototype.cancelScanDirectory = function(contentDirURI) {
 };
 
 ContentManager.prototype.setChangeListener = function(changeCallback) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_READ);
-
   var args = validator_.validateArgs(arguments, [{
     name: 'changeCallback',
     type: types_.LISTENER,
@@ -278,8 +268,6 @@ ContentManager.prototype.setChangeListener = function(changeCallback) {
 };
 
 ContentManager.prototype.unsetChangeListener = function() {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_READ);
-
   var data = {};
 
   var result = native_.callSync('ContentManager_unsetChangeListener', data);
@@ -290,8 +278,6 @@ ContentManager.prototype.unsetChangeListener = function() {
 };
 
 ContentManager.prototype.getPlaylists = function(successCallback, errorCallback) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_READ);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'successCallback', type: types_.FUNCTION},
     {name: 'errorCallback', type: types_.FUNCTION, optional: true, nullable: true}
@@ -312,12 +298,14 @@ ContentManager.prototype.getPlaylists = function(successCallback, errorCallback)
     native_.callIfPossible(args.successCallback, out);
   };
 
-  native_.call('ContentManager_getPlaylists', data, callback);
+  var result = native_.call('ContentManager_getPlaylists', data, callback);
+
+  if (native_.isFailure(result)) {
+    throw native_.getErrorObject(result);
+  }
 };
 
 ContentManager.prototype.createPlaylist = function(name, successCallback, errorCallback, sourcePlaylist) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'name', type: types_.STRING},
     {name: 'successCallback', type: types_.FUNCTION},
@@ -346,12 +334,14 @@ ContentManager.prototype.createPlaylist = function(name, successCallback, errorC
     native_.callIfPossible(args.successCallback, new Playlist(native_.getResultObject(result)));
   };
 
-  native_.call('ContentManager_createPlaylist', data, callback);
+  var result = native_.call('ContentManager_createPlaylist', data, callback);
+
+  if (native_.isFailure(result)) {
+    throw native_.getErrorObject(result);
+  }
 };
 
 ContentManager.prototype.removePlaylist = function(id, successCallback, errorCallback) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'id', type: types_.STRING},
     {name: 'successCallback', type: types_.FUNCTION, optional: true, nullable: true},
@@ -370,7 +360,11 @@ ContentManager.prototype.removePlaylist = function(id, successCallback, errorCal
     native_.callIfPossible(args.successCallback);
   };
 
-  native_.call('ContentManager_removePlaylist', data, callback);
+  var result = native_.call('ContentManager_removePlaylist', data, callback);
+
+  if (native_.isFailure(result)) {
+    throw native_.getErrorObject(result);
+  }
 };
 
 exports = new ContentManager();
index 1dd6a4f43b3aafe64a292d7b610cda16a58de9d1..b3b4a1998fc438fd3696ec4f065ed691b745372b 100755 (executable)
@@ -38,7 +38,6 @@ function Playlist(data) {
         return native_.getResultObject(result);
       },
       set: function(v) {
-        xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE);
         if (!type_.isNull(v)) {
           var name = converter_.toString(v, false);
           var result = native_.callSync('ContentPlaylist_setName',
@@ -72,7 +71,6 @@ function Playlist(data) {
         return res === " " ? null : res;
       },
       set: function(v) {
-        xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE);
         var thumbnailURI = converter_.toString(v, true);
         if (type_.isNullOrUndefined(thumbnailURI)) {
           //CoreAPI not support empty thumbnail, so one space must be used instead null thumbnail
@@ -102,8 +100,6 @@ function Playlist(data) {
 }
 
 Playlist.prototype.add = function (item) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'item', type: types_.PLATFORM_OBJECT, values: Content}
   ]);
@@ -120,8 +116,6 @@ Playlist.prototype.add = function (item) {
 };
 
 Playlist.prototype.addBatch = function (items, successCallback, errorCallback) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'items', type: types_.ARRAY, values: Content},
     {name: 'successCallback', type: types_.FUNCTION, optional: true, nullable: true},
@@ -141,12 +135,14 @@ Playlist.prototype.addBatch = function (items, successCallback, errorCallback) {
     native_.callIfPossible(args.successCallback);
   };
 
-  native_.call('ContentPlaylist_addBatch', data, callback);
+  var result = native_.call('ContentPlaylist_addBatch', data, callback);
+
+  if (native_.isFailure(result)) {
+    throw native_.getErrorObject(result);
+  }
 };
 
 Playlist.prototype.remove = function (item) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'item', type: types_.PLATFORM_OBJECT, values: PlaylistItem}
   ]);
@@ -163,8 +159,6 @@ Playlist.prototype.remove = function (item) {
 };
 
 Playlist.prototype.removeBatch = function (items, successCallback, errorCallback) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'items', type: types_.ARRAY, values: PlaylistItem},
     {name: 'successCallback', type: types_.FUNCTION, optional: true, nullable: true},
@@ -189,12 +183,14 @@ Playlist.prototype.removeBatch = function (items, successCallback, errorCallback
     native_.callIfPossible(args.successCallback);
   };
 
-  native_.call('ContentPlaylist_removeBatch', data, callback);
+  var result = native_.call('ContentPlaylist_removeBatch', data, callback);
+
+  if (native_.isFailure(result)) {
+    throw native_.getErrorObject(result);
+  }
 };
 
 Playlist.prototype.get = function (successCallback, errorCallback, count, offset) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_READ);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'successCallback', type: types_.FUNCTION},
     {name: 'errorCallback', type: types_.FUNCTION, optional: true, nullable: true},
@@ -230,12 +226,14 @@ Playlist.prototype.get = function (successCallback, errorCallback, count, offset
     native_.callIfPossible(args.successCallback, out);
   };
 
-  native_.call('ContentPlaylist_get', data, callback);
+  var result = native_.call('ContentPlaylist_get', data, callback);
+
+  if (native_.isFailure(result)) {
+    throw native_.getErrorObject(result);
+  }
 };
 
 Playlist.prototype.setOrder = function (items, successCallback, errorCallback) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'items', type: types_.ARRAY, values: PlaylistItem},
     {name: 'successCallback', type: types_.FUNCTION, optional: true, nullable: true},
@@ -267,12 +265,14 @@ Playlist.prototype.setOrder = function (items, successCallback, errorCallback) {
     native_.callIfPossible(args.successCallback);
   };
 
-  native_.call('ContentPlaylist_setOrder', data, callback);
+  var result = native_.call('ContentPlaylist_setOrder', data, callback);
+
+  if (native_.isFailure(result)) {
+    throw native_.getErrorObject(result);
+  }
 };
 
 Playlist.prototype.move = function (item, delta, successCallback, errorCallback) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.CONTENT_WRITE);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'item', type: types_.PLATFORM_OBJECT, values: PlaylistItem},
     {name: 'delta', type: types_.LONG},
@@ -293,5 +293,10 @@ Playlist.prototype.move = function (item, delta, successCallback, errorCallback)
     }
     native_.callIfPossible(args.successCallback);
   };
-  native_.call('ContentPlaylist_move', data, callback);
+
+  var result = native_.call('ContentPlaylist_move', data, callback);
+
+  if (native_.isFailure(result)) {
+    throw native_.getErrorObject(result);
+  }
 };