[Filesystem] - checking privileges
authorAndrzej Popowski <a.popowski@samsung.com>
Mon, 23 Mar 2015 08:06:10 +0000 (09:06 +0100)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Wed, 25 Mar 2015 14:55:02 +0000 (23:55 +0900)
Change-Id: I64cb50c7166519b321b5fdf55013c51cc8e7ca83
Signed-off-by: Andrzej Popowski <a.popowski@samsung.com>
src/filesystem/js/file.js
src/filesystem/js/file_stream.js
src/filesystem/js/file_system_manager.js

index 7e77b49f8d3b551e454fa4cb01e73cfe58687610..69eacca41a0eb6bc7b8380a46d755df935ae5bcd 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_FILESYSTEM_READ = 'http://tizen.org/privilege/filesystem.read';
+var _PRIVILEGE_FILESYSTEM_WRITE = 'http://tizen.org/privilege/filesystem.write';
 
 function File(data) {
   function fileSizeGetter() {
@@ -49,6 +51,7 @@ function File(data) {
 }
 
 File.prototype.toURI = function() {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_READ);
   return 'file://' + commonFS_.toRealPath(this.fullPath);
 };
 
@@ -144,6 +147,8 @@ function checkFile(file, fileFilter) {
 }
 
 File.prototype.listFiles = function(onsuccess, onerror, filter) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_READ);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'onsuccess', type: types_.FUNCTION},
     {name: 'onerror', type: types_.FUNCTION, optional: true, nullable: true},
@@ -218,6 +223,8 @@ function _checkEncoding(encoding) {
 }
 
 File.prototype.openStream = function(mode, onsuccess, onerror, encoding) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_READ);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'mode', type: types_.ENUM, values: ['r', 'rw', 'w', 'a']},
     {name: 'onsuccess', type: types_.FUNCTION},
@@ -265,6 +272,8 @@ File.prototype.openStream = function(mode, onsuccess, onerror, encoding) {
 };
 
 File.prototype.readAsText = function(onsuccess, onerror, encoding) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_READ);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'onsuccess', type: types_.FUNCTION},
     {name: 'onerror', type: types_.FUNCTION, optional: true, nullable: true},
@@ -316,6 +325,8 @@ File.prototype.readAsText = function(onsuccess, onerror, encoding) {
 };
 
 File.prototype.copyTo = function(originFilePath, destinationFilePath, overwrite, onsuccess, onerror) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'originFilePath', type: types_.STRING},
     {name: 'destinationFilePath', type: types_.STRING},
@@ -400,6 +411,8 @@ File.prototype.copyTo = function(originFilePath, destinationFilePath, overwrite,
 };
 
 File.prototype.moveTo = function(originFilePath, destinationFilePath, overwrite, onsuccess, onerror) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'originFilePath', type: types_.STRING},
     {name: 'destinationFilePath', type: types_.STRING},
@@ -499,6 +512,8 @@ File.prototype.moveTo = function(originFilePath, destinationFilePath, overwrite,
 };
 
 File.prototype.createDirectory = function(dirPath) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'dirPath', type: types_.STRING}
   ]);
@@ -555,6 +570,8 @@ File.prototype.createDirectory = function(dirPath) {
 };
 
 File.prototype.createFile = function(relativeFilePath) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'relativeFilePath', type: types_.STRING}
   ]);
@@ -603,6 +620,8 @@ File.prototype.createFile = function(relativeFilePath) {
 };
 
 File.prototype.resolve = function(filePath) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_READ);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'filePath', type: types_.STRING}
   ]);
@@ -641,6 +660,8 @@ File.prototype.resolve = function(filePath) {
 };
 
 File.prototype.deleteDirectory = function(directoryPath, recursive, onsuccess, onerror) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'directoryPath', type: types_.STRING},
     {name: 'recursive', type: types_.BOOLEAN},
@@ -715,6 +736,8 @@ File.prototype.deleteDirectory = function(directoryPath, recursive, onsuccess, o
 };
 
 File.prototype.deleteFile = function(filePath, onsuccess, onerror) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'filePath', type: types_.STRING},
     {name: 'onsuccess', type: types_.FUNCTION, optional: true, nullable: true},
index 77f60f961374c9c2795cefb0b5d29aaf9dc734fe..1ace552a3d3f6f29824d77c37e4224cb29eb76c5 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_FILESYSTEM_READ = 'http://tizen.org/privilege/filesystem.read';
+var _PRIVILEGE_FILESYSTEM_WRITE = 'http://tizen.org/privilege/filesystem.write';
 
 function FileStream(data, mode, encoding) {
   var _totalBytes = data.fileSize || 0;
@@ -57,6 +59,7 @@ function _checkClosed(stream) {
 }
 
 FileStream.prototype.close = function() {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_READ);
   this._closed = true;
 };
 
@@ -73,6 +76,8 @@ function _checkWriteAccess(mode) {
 }
 
 FileStream.prototype.read = function() {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_READ);
+
   var args = validator_.validateArgs(arguments, [
     {
       name: 'charCount',
@@ -115,6 +120,8 @@ FileStream.prototype.read = function() {
 };
 
 FileStream.prototype.readBytes = function() {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_READ);
+
   var args = validator_.validateArgs(arguments, [
     {
       name: 'byteCount',
@@ -162,6 +169,8 @@ FileStream.prototype.readBytes = function() {
 };
 
 FileStream.prototype.readBase64 = function() {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_READ);
+
   var args = validator_.validateArgs(arguments, [
     {
       name: 'byteCount',
@@ -207,6 +216,8 @@ FileStream.prototype.readBase64 = function() {
 };
 
 FileStream.prototype.write = function() {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {
       name: 'stringData',
@@ -237,6 +248,8 @@ FileStream.prototype.write = function() {
 };
 
 FileStream.prototype.writeBytes = function() {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {
       name: 'byteData',
@@ -272,6 +285,8 @@ function _isBase64(str) {
 }
 
 FileStream.prototype.writeBase64 = function() {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {
       name: 'base64Data',
index 5dd99d5fb67c35c24baf213072df051c7ab3db7b..95654b0c4e88ac2d4b823ce8bdc4e89851431ea9 100644 (file)
@@ -2,6 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+var _PRIVILEGE_FILESYSTEM_READ = 'http://tizen.org/privilege/filesystem.read';
+var _PRIVILEGE_FILESYSTEM_WRITE = 'http://tizen.org/privilege/filesystem.write';
+
 function FileSystemStorage(data) {
   Object.defineProperties(this, {
     label: {value: data.label, writable: false, enumerable: true},
@@ -19,6 +22,8 @@ function FileSystemManager() {
 }
 
 FileSystemManager.prototype.resolve = function(location, onsuccess, onerror, mode) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_READ);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'location', type: types_.STRING},
     {name: 'onsuccess', type: types_.FUNCTION},
@@ -74,6 +79,8 @@ FileSystemManager.prototype.resolve = function(location, onsuccess, onerror, mod
 };
 
 FileSystemManager.prototype.getStorage = function(label, onsuccess, onerror) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_READ);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'label', type: types_.STRING},
     {name: 'onsuccess', type: types_.FUNCTION},
@@ -100,6 +107,8 @@ FileSystemManager.prototype.getStorage = function(label, onsuccess, onerror) {
 };
 
 FileSystemManager.prototype.listStorages = function(onsuccess, onerror) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_READ);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'onsuccess', type: types_.FUNCTION},
     {name: 'onerror', type: types_.FUNCTION, optional: true, nullable: true}
@@ -132,6 +141,8 @@ function _StorageStateChangeListener(result) {
 }
 
 FileSystemManager.prototype.addStorageStateChangeListener = function(onsuccess, onerror) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'onsuccess', type: types_.FUNCTION},
     {name: 'onerror', type: types_.FUNCTION, optional: true, nullable: true}
@@ -161,6 +172,8 @@ FileSystemManager.prototype.addStorageStateChangeListener = function(onsuccess,
 };
 
 FileSystemManager.prototype.removeStorageStateChangeListener = function(watchId) {
+  xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_FILESYSTEM_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'watchId', type: types_.LONG}
   ]);