DEV_4
This commit is contained in:
		@@ -4,6 +4,7 @@ var ntr = require("../neutral-functions.js");
 | 
			
		||||
var fs = require("fs")
 | 
			
		||||
var path = require("path")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* GET home page. */
 | 
			
		||||
router.get('/', function(req, res, next) {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,6 +5,9 @@ var ntr = require("../neutral-functions.js")
 | 
			
		||||
/* GET home page. */
 | 
			
		||||
router.get('/', function(req, res, next) {
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  ntr.checkUser()
 | 
			
		||||
 | 
			
		||||
  var check = ntr.checkToken(req, res) 
 | 
			
		||||
 | 
			
		||||
  if(check.name == false) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										268
									
								
								routes/link.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										268
									
								
								routes/link.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,268 @@
 | 
			
		||||
var express = require('express');
 | 
			
		||||
const { compileString } = require('sass');
 | 
			
		||||
var router = express.Router();
 | 
			
		||||
var fs = require("fs")
 | 
			
		||||
var ntr = require("../neutral-functions.js")
 | 
			
		||||
 | 
			
		||||
/* GET home page. */
 | 
			
		||||
router.get('/', function(req, res, next) {
 | 
			
		||||
 | 
			
		||||
  var check = ntr.checkToken(req, res) 
 | 
			
		||||
 | 
			
		||||
  if(check.name == false) {
 | 
			
		||||
 | 
			
		||||
    res.redirect(302, "/login")
 | 
			
		||||
    
 | 
			
		||||
  } else {
 | 
			
		||||
 | 
			
		||||
    res.render('index', { title: ntr.getFullName(check.name), username: ntr.getFullName(check.name), accountpic: '<img width="200" class="w-25 sidebar-image noside" src="images/userspics/' + check.name + '.png">' });
 | 
			
		||||
  
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
router.post("/", function (req, res, next) {
 | 
			
		||||
 | 
			
		||||
    var check = ntr.checkToken(req, res) 
 | 
			
		||||
  
 | 
			
		||||
     if(check.name == false) {
 | 
			
		||||
 | 
			
		||||
        res.send({"result":"failed", "content":"ERROR_TOKEN_NOT_VALID"})
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    } else {
 | 
			
		||||
 | 
			
		||||
        if(check.permLevel >= 3) {
 | 
			
		||||
 | 
			
		||||
            if(req.body.request == "add") {
 | 
			
		||||
 | 
			
		||||
                const linkn = req.body.value
 | 
			
		||||
 | 
			
		||||
                const linkData = JSON.parse(fs.readFileSync(__dirname.replace("routes",'links.json')))
 | 
			
		||||
 | 
			
		||||
                if(linkn.src.includes(" ") | linkn.dest.includes(" ")) {
 | 
			
		||||
 | 
			
		||||
                    res.send({"result":"failed", "content":"CONTAINS_SPACES"})
 | 
			
		||||
 | 
			
		||||
                } else if(Object.keys(linkData).includes(linkn.name)) {
 | 
			
		||||
 | 
			
		||||
                    res.send({"result":"success", "content":"NAME_ALREADY_USED"})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                } else if(checkDest(linkn.dest) == true) {
 | 
			
		||||
                    
 | 
			
		||||
                    res.send({"result":"success", "content":"DEST_ALREADY_USED"})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                } else {
 | 
			
		||||
 | 
			
		||||
                    linkData[linkn.name] = {
 | 
			
		||||
                        "src": linkn.src.toLowerCase(),
 | 
			
		||||
                        "dest": linkn.dest.toLowerCase()
 | 
			
		||||
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    fs.writeFileSync(__dirname.replace("routes",'links.json'), JSON.stringify(linkData, null, 2))
 | 
			
		||||
 | 
			
		||||
                    loadLinksSaved()
 | 
			
		||||
 | 
			
		||||
                    res.send({"result":"success", "content":"ADDED"})
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            } else if(req.body.request == "del") {
 | 
			
		||||
 | 
			
		||||
                const linkData = JSON.parse(fs.readFileSync(__dirname.replace("routes",'links.json')))
 | 
			
		||||
 | 
			
		||||
                Reflect.deleteProperty(linkData,req.body.value)
 | 
			
		||||
 | 
			
		||||
                fs.writeFileSync(__dirname.replace("routes",'links.json'), JSON.stringify(linkData, null, 2))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                
 | 
			
		||||
                loadLinksSaved()
 | 
			
		||||
 | 
			
		||||
            } else if(req.body.request == "get") {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                const linkData = JSON.parse(fs.readFileSync(__dirname.replace("routes",'links.json')))
 | 
			
		||||
 | 
			
		||||
                const links = Object.keys(linkData)
 | 
			
		||||
 | 
			
		||||
                var allLink = new Array()
 | 
			
		||||
 | 
			
		||||
                for(var link of links) {
 | 
			
		||||
 | 
			
		||||
                    allLink.push({"name": link, "src":linkData[link].src, "dest":linkData[link].dest})
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                res.send({"result":"success", "content":allLink})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            } else if(req.body.request == "edit") {
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
                const linkn = req.body.value
 | 
			
		||||
 | 
			
		||||
                const linkData = JSON.parse(fs.readFileSync(__dirname.replace("routes",'links.json')))
 | 
			
		||||
 | 
			
		||||
                if(linkn.src.includes(" ") | linkn.dest.includes(" ")) {
 | 
			
		||||
 | 
			
		||||
                    res.send({"result":"failed", "content":"CONTAINS_SPACES"})
 | 
			
		||||
 | 
			
		||||
                }  else if(checkName(linkn.name, linkData) == true) {
 | 
			
		||||
 | 
			
		||||
                    res.send({"result":"success", "content":"NAME_ALREADY_USED"})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                }else if(checkDest(linkn.dest, linkn.original) == true) {
 | 
			
		||||
                    
 | 
			
		||||
                    res.send({"result":"success", "content":"DEST_ALREADY_USED"})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                } else {
 | 
			
		||||
 | 
			
		||||
                    Reflect.deleteProperty(linkData, req.body.value.original)
 | 
			
		||||
 | 
			
		||||
                    linkData[linkn.name] = {
 | 
			
		||||
                        "src": linkn.src.toLowerCase(),
 | 
			
		||||
                        "dest": linkn.dest.toLowerCase()
 | 
			
		||||
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    fs.writeFileSync(__dirname.replace("routes",'links.json'), JSON.stringify(linkData, null, 2))
 | 
			
		||||
 | 
			
		||||
                    loadLinksSaved()
 | 
			
		||||
 | 
			
		||||
                    res.send({"result":"success", "content":"EDI"})
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        } else {
 | 
			
		||||
 | 
			
		||||
            res.send({"result":"failed", "content":"ERROR_USER_PERMISSION_TOO_LOW"})
 | 
			
		||||
        }
 | 
			
		||||
   
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
loadLinksSaved()
 | 
			
		||||
 | 
			
		||||
function loadLinksSaved() {
 | 
			
		||||
 | 
			
		||||
    const linkData = JSON.parse(fs.readFileSync(__dirname.replace("routes",'links.json')))
 | 
			
		||||
    const links = Object.keys(linkData)
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
    for(var link of links) {
 | 
			
		||||
 | 
			
		||||
        const dest = linkData[link].dest
 | 
			
		||||
        const src = linkData[link].src
 | 
			
		||||
 | 
			
		||||
        router.get('/' + dest, function (req, res, next) {
 | 
			
		||||
 | 
			
		||||
            res.redirect(302, src)
 | 
			
		||||
 | 
			
		||||
        })
 | 
			
		||||
        
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function checkDest(src, name) {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    if(name == null) {
 | 
			
		||||
 | 
			
		||||
        const linkData = JSON.parse(fs.readFileSync(__dirname.replace("routes",'links.json')))
 | 
			
		||||
        const links = Object.keys(linkData)
 | 
			
		||||
        const destNotAvb = new Array()
 | 
			
		||||
    
 | 
			
		||||
        for(var link of links) {
 | 
			
		||||
    
 | 
			
		||||
            destNotAvb.push(linkData[link].dest)
 | 
			
		||||
        }
 | 
			
		||||
    
 | 
			
		||||
        if(destNotAvb.includes(src)) {
 | 
			
		||||
    
 | 
			
		||||
            return true;
 | 
			
		||||
        } else {
 | 
			
		||||
    
 | 
			
		||||
            return false;
 | 
			
		||||
    
 | 
			
		||||
        }
 | 
			
		||||
    
 | 
			
		||||
    } else {
 | 
			
		||||
 | 
			
		||||
        const linkData = JSON.parse(fs.readFileSync(__dirname.replace("routes",'links.json')))
 | 
			
		||||
        const links = Object.keys(linkData)
 | 
			
		||||
        const destNotAvb = new Array()
 | 
			
		||||
    
 | 
			
		||||
        for(var link of links) {
 | 
			
		||||
 | 
			
		||||
            if(link != name) {
 | 
			
		||||
 | 
			
		||||
                destNotAvb.push(linkData[link].dest)
 | 
			
		||||
            }
 | 
			
		||||
    
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
       
 | 
			
		||||
    
 | 
			
		||||
        if(destNotAvb.includes(src)) {
 | 
			
		||||
    
 | 
			
		||||
            return true;
 | 
			
		||||
        } else {
 | 
			
		||||
    
 | 
			
		||||
            return false;
 | 
			
		||||
    
 | 
			
		||||
        }
 | 
			
		||||
    
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
   
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function checkName(name, linkData) {
 | 
			
		||||
 | 
			
		||||
    const names = Object.keys(linkData)
 | 
			
		||||
    const namewithout = new Array()
 | 
			
		||||
 | 
			
		||||
    for(var namei of names) {
 | 
			
		||||
 | 
			
		||||
        if(namei != name) {
 | 
			
		||||
 | 
			
		||||
            namewithout.push(linkData[namei].name)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
    if(namewithout.includes(name)) {
 | 
			
		||||
    
 | 
			
		||||
        return true;
 | 
			
		||||
    } else {
 | 
			
		||||
 | 
			
		||||
        return false;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
   
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
module.exports = router;
 | 
			
		||||
@@ -10,6 +10,7 @@ var ntr = require("../neutral-functions.js")
 | 
			
		||||
router.get('/', function(req, res, next) {
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  ntr.checkUser()
 | 
			
		||||
  var check = ntr.checkToken(req, res) 
 | 
			
		||||
 | 
			
		||||
  if(check.name != false) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user