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