#include "common/logger.h"
#include "common/platform_exception.h"
#include "common/task-queue.h"
+#include "common/tools.h"
#include "filesystem_manager.h"
namespace extension {
namespace filesystem {
+namespace {
+// The privileges that required in Filesystem API
+const std::string kPrivilegeFilesystemRead = "http://tizen.org/privilege/systemsettings.admin";
+const std::string kPrivilegeFilesystemWrite = "http://tizen.org/privilege/systemsettings.admin";
+}
+
using namespace common;
using namespace extension::filesystem;
void FilesystemInstance::FileCreateSync(const picojson::value& args, picojson::object& out)
{
LoggerD("enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out);
CHECK_EXIST(args, "location", out)
const std::string& location = args.get("location").get<std::string>();
void FilesystemInstance::FileRename(const picojson::value& args,
picojson::object& out) {
LoggerD("enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out);
CHECK_EXIST(args, "callbackId", out)
CHECK_EXIST(args, "oldPath", out)
CHECK_EXIST(args, "newPath", out)
void FilesystemInstance::FileReadSync(const picojson::value& args,
picojson::object& out) {
LoggerD("enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemRead, &out);
CHECK_EXIST(args, "location", out)
CHECK_EXIST(args, "offset", out)
CHECK_EXIST(args, "length", out)
void FilesystemInstance::FileWriteSync(const picojson::value& args,
picojson::object& out) {
LoggerD("enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out);
CHECK_EXIST(args, "location", out)
CHECK_EXIST(args, "data", out)
CHECK_EXIST(args, "offset", out)
void FilesystemInstance::FileStat(const picojson::value& args,
picojson::object& out) {
LoggerD("enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemRead, &out);
CHECK_EXIST(args, "callbackId", out)
CHECK_EXIST(args, "location", out)
void FilesystemInstance::FileStatSync(const picojson::value& args,
picojson::object& out) {
LoggerD("enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemRead, &out);
CHECK_EXIST(args, "location", out)
const std::string& location = args.get("location").get<std::string>();
const picojson::value& args,
picojson::object& out) {
LoggerD("enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out);
FilesystemManager::GetInstance().StartListening();
ReportSuccess(out);
}
const picojson::value& args,
picojson::object& out) {
LoggerD("enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out);
FilesystemManager::GetInstance().StopListening();
ReportSuccess(out);
}
const picojson::value& args,
picojson::object& out) {
LoggerD("enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out);
CHECK_EXIST(args, "location", out)
const std::string& location = args.get("location").get<std::string>();
void FilesystemInstance::ReadDir(const picojson::value& args,
picojson::object& out) {
LoggerD("enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemRead, &out);
CHECK_EXIST(args, "pathToDir", out)
CHECK_EXIST(args, "callbackId", out)
void FilesystemInstance::UnlinkFile(const picojson::value& args,
picojson::object& out) {
LoggerD("enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out);
CHECK_EXIST(args, "pathToFile", out)
double callback_id = args.get("callbackId").get<double>();
void FilesystemInstance::RemoveDirectory(const picojson::value& args,
picojson::object& out) {
LoggerD("enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out);
CHECK_EXIST(args, "pathToDelete", out)
double callback_id = args.get("callbackId").get<double>();
void FilesystemInstance::CopyTo(const picojson::value& args,
picojson::object& out) {
LoggerD("enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out);
CHECK_EXIST(args, "callbackId", out)
CHECK_EXIST(args, "originFilePath", out)
CHECK_EXIST(args, "destinationFilePath", out)
}
function toURI() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_READ);
+ xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.FILESYSTEM_READ);
return 'file://' + commonFS_.toRealPath(this.fullPath);
}
}
function listFiles() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_READ);
-
var args = validator_.validateArgs(arguments, [
{name: 'onsuccess', type: types_.FUNCTION},
{name: 'onerror', type: types_.FUNCTION, optional: true, nullable: true},
}
function openStream() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_READ);
-
var args = validator_.validateArgs(arguments, [
{name: 'mode', type: types_.ENUM, values: ['r', 'rw', 'w', 'a']},
{name: 'onsuccess', type: types_.FUNCTION},
};
function readAsText() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_READ);
-
var args = validator_.validateArgs(arguments, [
{name: 'onsuccess', type: types_.FUNCTION},
{name: 'onerror', type: types_.FUNCTION, optional: true, nullable: true},
};
function copyTo() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_WRITE);
-
var args = validator_.validateArgs(arguments, [
{name: 'originFilePath', type: types_.STRING},
{name: 'destinationFilePath', type: types_.STRING},
};
function moveTo() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_WRITE);
-
var args = validator_.validateArgs(arguments, [
{name: 'originFilePath', type: types_.STRING},
{name: 'destinationFilePath', type: types_.STRING},
};
function createDirectory() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_WRITE);
-
var args = validator_.validateArgs(arguments, [
{name: 'dirPath', type: types_.STRING}
]);
}
function createFile() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_WRITE);
-
var args = validator_.validateArgs(arguments, [
{name: 'relativeFilePath', type: types_.STRING}
]);
};
function resolveFile() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_READ);
-
var args = validator_.validateArgs(arguments, [
{name: 'filePath', type: types_.STRING}
]);
};
function deleteDirectory() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_WRITE);
-
var args = validator_.validateArgs(arguments, [
{name: 'directoryPath', type: types_.STRING},
{name: 'recursive', type: types_.BOOLEAN},
};
function deleteFile() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_WRITE);
-
var args = validator_.validateArgs(arguments, [
{name: 'filePath', type: types_.STRING},
{name: 'onsuccess', type: types_.FUNCTION, optional: true, nullable: true},
File.prototype.deleteFile = function() {
deleteFile.apply(this, arguments);
-};
\ No newline at end of file
+};
}
function closeFileStream() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_READ);
this._closed = true;
};
}
function read() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_READ);
-
var args = validator_.validateArgs(arguments, [
{
name: 'charCount',
};
function readBytes() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_READ);
-
var args = validator_.validateArgs(arguments, [
{
name: 'byteCount',
};
function readBase64() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_READ);
-
var args = validator_.validateArgs(arguments, [
{
name: 'byteCount',
}
function write() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_WRITE);
-
var args = validator_.validateArgs(arguments, [
{
name: 'stringData',
};
function writeBytes() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_WRITE);
-
var args = validator_.validateArgs(arguments, [
{
name: 'byteData',
}
function writeBase64() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_WRITE);
-
var args = validator_.validateArgs(arguments, [
{
name: 'base64Data',
}
function resolve() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_READ);
-
var args = validator_.validateArgs(arguments, [
{name: 'location', type: types_.STRING},
{name: 'onsuccess', type: types_.FUNCTION},
};
function getStorage() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_READ);
-
+ xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.FILESYSTEM_READ);
var args = validator_.validateArgs(arguments, [
{name: 'label', type: types_.STRING},
{name: 'onsuccess', type: types_.FUNCTION},
};
function listStorages() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_READ);
-
+ xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.FILESYSTEM_READ);
var args = validator_.validateArgs(arguments, [
{name: 'onsuccess', type: types_.FUNCTION},
{name: 'onerror', type: types_.FUNCTION, optional: true, nullable: true}
}
function addStorageStateChangeListener() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_WRITE);
-
var args = validator_.validateArgs(arguments, [
{name: 'onsuccess', type: types_.FUNCTION},
{name: 'onerror', type: types_.FUNCTION, optional: true, nullable: true}
};
function removeStorageStateChangeListener() {
- privUtils_.checkPrivilegeAccess(privilege_.FILESYSTEM_WRITE);
-
var args = validator_.validateArgs(arguments, [
{name: 'watchId', type: types_.LONG}
]);