puzzle/user.js
N0rdye 1f5085490f massive UwU fixes & updates
when login lasd sids is logged out, added cache for images they are being save to local storage when loaded, added reload for dragging elements when resizing the window or zooming the page, updated logging function, added local and cloud saving, loading for project, updated project preview image saving, updated object loading,  updated sid cleaning. i did it all in one day OWO. thats it Uwu
2023-07-04 04:11:17 +05:00

133 lines
5.1 KiB
JavaScript

const db = require('./db');
const func = require('./func');
const vars = require('./vars');
module.exports.login = (inp,cook,res)=>{
let ilogin = func.decrypt(inp["login"],inp["sid"]);
let ipass = func.decrypt(inp["pass"],inp["sid"]);
db.cv("users","login",ilogin,(login) => {
if(login == null){
res.status(210).send({out:"bad", err:"user"});
}
else if (login != null){
db.gv("users","login",`'${ilogin}'`,(udata)=>{udata = udata[0];
db.ggv("sids","`sid`","uid",udata["id"],(sdata)=>{sdata = sdata[0];
// console.log(sdata);
if(ipass == udata["pass"]){
if (sdata != null){
// res.send({out:"logged",sid:sdata["sid"]});
// console.log(sdata);
db.dl("sids","uid",`'${udata["id"]}'`,() =>{});
}
func.log("good boy "+udata["uuid"]+" logged in by login & pass from "+cook["sid"]);
res.cookie("uuid",udata["uuid"],{maxAge:vars.week,path:"/;SameSite=Strict"});
// db.sv("users","sids",sids += inp["sid"]+";","uuid",udata["uuid"],()=>{});
db.nr("sids",'`sid`,`uid`',`'${cook["sid"]}','${udata["id"]}'`);
res.send({out:"goto",url:"/main"});
}
else{
res.status(210).send({out:"bad", err:"pass"});
}
})
});
}
})
// res.send("good");
}
module.exports.reg = (inp,cook,res)=>{
let uuid = func.get_uuid(inp["login"]);
let admin = inp["admin"];
let pass = inp["pass"];
let login = inp["login"];
check_db();
function check_db() {
db.cv("users","login",inp["login"], (ldata)=>{
db.cv("users","login",inp["uuid"],(udata) =>{
// func.log("/reg_user same login recs = "+ldata);
// func.log("/reg_user same uuid recs = "+udata);
if(udata==null && ldata==null){
good_reg();
// func.log("/reg_user good reg");
func.log(`good boy ${uuid} registered user ${login} with uuid = ${uuid} admin = ${admin}`);
}
else if(udata!=null){
uuid = func.get_uuid(inp["login"]);
check_db();
// res.send({out:"bad", body:"uuid"});
}
else if (ldata != null){
func.log(`bad boy ${uuid} tried to register user ${login} with uuid = ${uuid} admin = ${admin} but login in use`);
res.send({out:"bad", body:"login"});
return;
}
})
})
}
function good_reg(){
db.nr("users",'`login`,`pass`,`uuid`,`admin`',`'${login}','${pass}','${uuid}',${admin}`);
if (admin){
db.ggv("users","`id`","uuid",`'${uuid}'`,(udata)=>{ udata = udata[0]
db.nr("admins",'`login`,`uid`',`'${login}',${udata["id"]}`);
})
}
res.send({out:"good", body:{uuid:uuid,login:login,admin:admin}});
}
}
module.exports.get_cr = (inp,cook,res)=>{
db.ggv("users","`login`,`admin`,`id`","uuid",`"${inp["uuid"]}"`,(udata)=>{udata = udata[0];
// delete re["sids"];
if(udata != null){
res.send({out:"good",body:udata});
}else{
res.send({out:"bad"});
}
});
}
module.exports.clear_sid = (inp,cook,res)=>{
if(inp["sid"] != null){
// res.send({out:"good"});
db.dl("sids","sid",`'${inp["sid"]}'`,() =>{
func.log("good boy "+inp["uuid"] + " logged out from "+inp["sid"]);
});
// db.ggv("sids","id","sid",`'${cook["sid"]}'`,(sids)=>{
// Object.entries(sids).forEach(([key,value])=>{
// db.dl("sids","id",`'${value["id"]}'`,() =>{});
// })
// })
}
else if(inp["uuid"] != null){
// res.send({out:"good"});
db.ggv("users","id","uuid",`'${inp["uuid"]}'`,(udata)=>{udata = udata[0]
db.dl("sids","uid",`'${udata["id"]}'`,() =>{
func.log("good boy "+inp["uuid"] + " logged out from "+inp["sid"]);
});
// db.ggv("sids","id","uid",`'${udata["id"]}'`,(sids)=>{
// Object.entries(sids).forEach(([key,value])=>{
// db.dl("sids","id",`'${value["id"]}'`,() =>{});
// })
// })
});
}
res.send({out:"good"});
}
module.exports.sid_log=(inp,cook,res,req)=>{
func.sid(cook,res,(include) => {
if (include){
res.send({out:"good",url:"/main"});
if(req.headers.referer.split("http://n0rsrv2:3002/")[1] == "login") func.log("good boy "+ id["uuid"]+" logged in by sid logs from " + id["sid"]);
}
else if (!include){
res.send({out:"bad"});
if(req.headers.referer.split("http://n0rsrv2:3002/")[1] == "login") func.log("bad boy "+ id["uuid"]+" tried to login by sid but sid expired from " + id["sid"]);
}
},false)
}