From b6c13aae55d43ec3ad5ef4343cfe63adea030606 Mon Sep 17 00:00:00 2001 From: Andrzej Popowski Date: Mon, 23 Mar 2015 09:06:10 +0100 Subject: [PATCH] [Filesystem] - checking privileges Change-Id: I64cb50c7166519b321b5fdf55013c51cc8e7ca83 Signed-off-by: Andrzej Popowski --- src/filesystem/js/file.js | 23 +++++++++++++++++++++++ src/filesystem/js/file_stream.js | 15 +++++++++++++++ src/filesystem/js/file_system_manager.js | 13 +++++++++++++ 3 files changed, 51 insertions(+) diff --git a/src/filesystem/js/file.js b/src/filesystem/js/file.js index 7e77b49f..69eacca4 100644 --- a/src/filesystem/js/file.js +++ b/src/filesystem/js/file.js @@ -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}, diff --git a/src/filesystem/js/file_stream.js b/src/filesystem/js/file_stream.js index 77f60f96..1ace552a 100644 --- a/src/filesystem/js/file_stream.js +++ b/src/filesystem/js/file_stream.js @@ -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', diff --git a/src/filesystem/js/file_system_manager.js b/src/filesystem/js/file_system_manager.js index 5dd99d5f..95654b0c 100644 --- a/src/filesystem/js/file_system_manager.js +++ b/src/filesystem/js/file_system_manager.js @@ -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} ]); -- 2.34.1