Version 0.2.0 - Ajout de l'explorateur de fichier, des ViewWindow, Des DroppableMenu
All checks were successful
Neutral/pipeline/head This commit looks good
All checks were successful
Neutral/pipeline/head This commit looks good
This commit is contained in:
191
bin/files.js
191
bin/files.js
@ -6,13 +6,17 @@ const clog = new LogType("Fichier")
|
||||
const os = require("os");
|
||||
const uuid = require('uuid');
|
||||
var mime = require('mime-types');
|
||||
const { set } = require("../main")
|
||||
|
||||
// check if shared folder exist, if not create it
|
||||
if(!fs.existsSync(__glob.SHARED)) {
|
||||
fs.mkdirSync(__glob.SHARED)
|
||||
}
|
||||
|
||||
module.exports.getFiles = function(root) {
|
||||
|
||||
var response = new Object()
|
||||
response.content = new Array()
|
||||
response.root = root
|
||||
response.parent = path.dirname(root)
|
||||
|
||||
|
||||
try{
|
||||
@ -20,8 +24,13 @@ module.exports.getFiles = function(root) {
|
||||
if(root == "homepath") {
|
||||
|
||||
root = os.homedir()
|
||||
response.root = root
|
||||
|
||||
|
||||
}
|
||||
|
||||
if(root == "sharepath") {
|
||||
|
||||
root = __glob.SHARED
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -48,6 +57,178 @@ module.exports.getFiles = function(root) {
|
||||
response.content = "NOT_PERMITTED"
|
||||
}
|
||||
|
||||
response.root = root
|
||||
response.parent = path.dirname(root)
|
||||
|
||||
|
||||
return response
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.createFolder = function(root) {
|
||||
|
||||
// Check if folder already exist
|
||||
|
||||
if(!fs.existsSync(root)) {
|
||||
|
||||
try {
|
||||
fs.mkdirSync(root)
|
||||
return "OK"
|
||||
} catch(err) {
|
||||
|
||||
return "NOT_PERMITTED"
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
return 'EXIST'
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports.deleteFile = function(root) {
|
||||
|
||||
if(fs.existsSync(root)) {
|
||||
|
||||
try {
|
||||
|
||||
fs.rmSync(root, { recursive: true, force: true })
|
||||
return "OK"
|
||||
} catch(err) {
|
||||
console.log(err)
|
||||
return "NOT_PERMITTED"
|
||||
}
|
||||
} else {
|
||||
|
||||
return "NOT_EXIST"
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.renameFile = function(settings) {
|
||||
|
||||
if(fs.existsSync(settings.root)) {
|
||||
|
||||
try {
|
||||
|
||||
fs.renameSync(settings.root + path.sep + settings.oldName, settings.root + path.sep + settings.newName)
|
||||
return "OK"
|
||||
} catch(err) {
|
||||
|
||||
return "NOT_PERMITTED"
|
||||
}
|
||||
} else {
|
||||
|
||||
return "NOT_EXIST"
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.shareFile = function(settings) {
|
||||
|
||||
//It's gonna coopy the file in the shared folder
|
||||
// And return the link of the file
|
||||
// The link is gonna be like this : http://localhost:3000/shared/name of file
|
||||
// The file is gonna be in the shared folder
|
||||
|
||||
if(fs.existsSync(settings.root)) {
|
||||
|
||||
try {
|
||||
|
||||
fs.copyFileSync(settings.root + path.sep + settings.name, __glob.SHARED + path.sep + settings.name)
|
||||
// return the link of the file shared
|
||||
if(process.env.DEV) {
|
||||
return "http://localhost:3001/shared/" + settings.name
|
||||
|
||||
} else {
|
||||
return "https://neutral.raphix.fr/shared/" + settings.name
|
||||
|
||||
}
|
||||
|
||||
} catch(err) {
|
||||
console.log(err)
|
||||
return "NOT_PERMITTED"
|
||||
}
|
||||
} else {
|
||||
|
||||
return "NOT_EXIST"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module.exports.getFile = function(root) {
|
||||
|
||||
if(fs.existsSync(root)) {
|
||||
|
||||
try {
|
||||
|
||||
return fs.readFileSync(root, "utf-8")
|
||||
} catch(err) {
|
||||
console.log(err)
|
||||
return "NOT_PERMITTED"
|
||||
}
|
||||
} else {
|
||||
|
||||
return "NOT_EXIST"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports.saveFile = function(settings) {
|
||||
|
||||
try {
|
||||
|
||||
fs.writeFileSync(settings.root + path.sep + settings.name, settings.content)
|
||||
return "OK"
|
||||
} catch(err) {
|
||||
console.log(err)
|
||||
return "NOT_PERMITTED"
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.downloadFile = function(root) {
|
||||
|
||||
if(fs.existsSync(root)) {
|
||||
|
||||
try {
|
||||
|
||||
return fs.readFileSync(root)
|
||||
} catch(err) {
|
||||
console.log(err)
|
||||
return "NOT_PERMITTED"
|
||||
}
|
||||
} else {
|
||||
|
||||
return "NOT_EXIST"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
module.exports.uploadFile = function(settings) {
|
||||
|
||||
try {
|
||||
|
||||
fs.writeFileSync(settings.root + path.sep + settings.name, settings.file)
|
||||
return "OK"
|
||||
} catch(err) {
|
||||
console.log(err)
|
||||
return "NOT_PERMITTED"
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.newFile = function(settings) {
|
||||
|
||||
if(!fs.existsSync(settings)) {
|
||||
|
||||
try {
|
||||
|
||||
fs.writeFileSync(settings, "")
|
||||
return "OK"
|
||||
} catch(err) {
|
||||
console.log(err)
|
||||
return "NOT_PERMITTED"
|
||||
}
|
||||
} else {
|
||||
|
||||
return "EXIST"
|
||||
}
|
||||
}
|
@ -8,7 +8,8 @@ const __glob = {
|
||||
ICON: root + path.sep + "public" + path.sep + 'images' + path.sep + "FormatLogo_WHITE.ico",
|
||||
DATA: root + path.sep + "data",
|
||||
USERS: root + path.sep + "data" + path.sep + "users.json",
|
||||
CONFIG: root + path.sep + "data" + path.sep + "config.json"
|
||||
CONFIG: root + path.sep + "data" + path.sep + "config.json",
|
||||
SHARED: root + path.sep + "data" + path.sep + "shared",
|
||||
};
|
||||
|
||||
|
||||
|
@ -30,9 +30,9 @@ module.exports.serverIO = function(server) {
|
||||
if(user) {
|
||||
plog.log("Connexion au panel par '" + user.username + "' avec le socket : " + socket.id)
|
||||
user.setLastLogin(new Date())
|
||||
/*
|
||||
GET REQUEST
|
||||
*/
|
||||
/**
|
||||
* GET REQUEST
|
||||
*/
|
||||
|
||||
// Get Users
|
||||
GetRequest("USERINFO", () => {
|
||||
@ -40,11 +40,56 @@ module.exports.serverIO = function(server) {
|
||||
GetAnswer("USERINFO", {username: user.username, display_name: user.display_name ,picture: user.picture, permission: user.permission})
|
||||
})
|
||||
|
||||
/**
|
||||
* POST REQUEST
|
||||
*/
|
||||
|
||||
PostRequest("FX_GET", (root) => {
|
||||
|
||||
PostAnswer("FX_GET", files.getFiles(root))
|
||||
})
|
||||
|
||||
PostRequest("FX_NEW_FOLDER", (root) => {
|
||||
|
||||
PostAnswer("FX_NEW_FOLDER", files.createFolder(root))
|
||||
})
|
||||
|
||||
PostRequest("FX_DELETE", (root) => {
|
||||
|
||||
PostAnswer("FX_DELETE", files.deleteFile(root))
|
||||
} )
|
||||
|
||||
PostRequest("FX_RENAME", (settings) => {
|
||||
|
||||
PostAnswer("FX_RENAME", files.renameFile(settings))
|
||||
})
|
||||
|
||||
PostRequest("FX_SHARE", (settings) => {
|
||||
|
||||
PostAnswer("FX_SHARE", files.shareFile(settings))
|
||||
})
|
||||
|
||||
PostRequest("FX_GETFILE", (root) => {
|
||||
|
||||
PostAnswer("FX_GETFILE", files.getFile(root))
|
||||
})
|
||||
|
||||
PostRequest("FX_SAVEFILE", (settings) => {
|
||||
|
||||
PostAnswer("FX_SAVEFILE", files.saveFile(settings))
|
||||
})
|
||||
|
||||
PostRequest("FX_NEW_FILE", (settings) => {
|
||||
|
||||
PostAnswer("FX_NEW_FILE", files.newFile(settings))
|
||||
})
|
||||
|
||||
PostRequest("FX_UPLOAD", (settings) => {
|
||||
|
||||
PostAnswer("FX_UPLOAD", files.uploadFile(settings))
|
||||
|
||||
})
|
||||
|
||||
socket.on("disconnect", () => {
|
||||
|
||||
plog.log("Déconnexion au panel par '" + user.username + "' avec le socket : " + socket.id)
|
||||
|
Reference in New Issue
Block a user