reconfigure db

This commit is contained in:
N0rdye 2023-06-27 20:29:42 +05:00
parent 681c1455f6
commit 0b1b498b7d
6 changed files with 189 additions and 138 deletions

21
db.js
View File

@ -32,14 +32,27 @@ module.exports.cv = (table,key,value,callback) => {
}) })
} }
// get_from module.exports.dl = (table,key,value,callback) => {
module.exports.gv = (table,key,value,callback) => { // console.log('SELECT * FROM `'+table+'` WHERE `'+key+'` = '+value);
logcon.query('SELECT * FROM `'+table+'` WHERE `'+key+'` = "'+value+'"', (err, rows, fields) => { logcon.query('DELETE FROM `'+table+'` WHERE `'+key+'` = '+value, (err, rows, fields) => {
if (err) { if (err) {
console.log("sql err"); console.log("sql err");
throw err; throw err;
}else{ }else{
callback(rows[0]); callback(rows);
}
})
}
// get_from
module.exports.gv = (table,key,value,callback) => {
// console.log('SELECT * FROM `'+table+'` WHERE `'+key+'` = '+value);
logcon.query('SELECT * FROM `'+table+'` WHERE `'+key+'` = '+value, (err, rows, fields) => {
if (err) {
console.log("sql err");
throw err;
}else{
callback(rows);
} }
}) })
} }

33
func.js
View File

@ -26,27 +26,24 @@ module.exports.check_sid = (Cookies, callback) =>{
let uuid = Cookies["uuid"]; let uuid = Cookies["uuid"];
let sid = Cookies["sid"]; let sid = Cookies["sid"];
// console.log(uuid,sid); // console.log(uuid,sid);
db.gv("users","uuid",uuid,(rdata)=>{ db.gv("users","uuid",`'${uuid}'`,(udata)=>{ udata = udata[0];
let sids = rdata["sids"]; // console.log(udata);
if(sids != null){ db.gv("sids","uid",udata["id"],(rdata)=>{
if(sids.split(";").includes(sid)){ let valid = "";
// console.log("good boy "); rdata.forEach(rec => {
callback(true,Cookies); if (rec["sid"] == sid){
} valid = rec["sid"];
else{ return;
// console.log("bad boy ");
callback(false,Cookies);
}
}
else{
// console.log("bad boy ");
callback(false,Cookies);
} }
}); });
if(valid != ""){
callback(true,udata);
} }
else{
module.exports.get_by_sid = (Cookies) =>{ callback(false,udata);
}
});
})
} }

127
index.js
View File

@ -26,6 +26,7 @@ app.use(express.urlencoded({
app.use(express.static('public')); app.use(express.static('public'));
app.use(cookieParser()); app.use(cookieParser());
app.post('/back_login', (req, res) => { app.post('/back_login', (req, res) => {
let inp = req.body; let inp = req.body;
let cook = req.cookies; let cook = req.cookies;
@ -37,37 +38,44 @@ app.post('/back_login', (req, res) => {
res.status(210).send({out:"bad", err:"user"}); res.status(210).send({out:"bad", err:"user"});
} }
else if (login != null){ else if (login != null){
db.gv("users","login",ilogin,(udata)=>{ db.gv("users","login",`'${ilogin}'`,(udata)=>{udata = udata[0];
if(ipass == udata["pass"]){ if(ipass == udata["pass"]){
console.log(udata["uuid"]+" logged in by login & pass from "+cook["sid"]); console.log(udata["uuid"]+" logged in by login & pass from "+cook["sid"]);
res.cookie("uuid",udata["uuid"],{maxAge:1000000,path:"/;SameSite=Strict"}); res.cookie("uuid",udata["uuid"],{maxAge:1000000,path:"/;SameSite=Strict"});
db.gv("users","uuid",udata["uuid"],(rdata)=>{ // db.sv("users","sids",sids += inp["sid"]+";","uuid",udata["uuid"],()=>{});
// console.log(rdata["sids"]); db.nr("sids",'`sid`,`uid`',`'${cook["sid"]}','${udata["id"]}'`);
let sids = rdata["sids"];
// console.log(sids.split(";"));
if(sids != null){
if(sids.split(";").includes(inp["sid"])){
console.log("good boy");
}
else{
db.sv("users","sids",sids += inp["sid"]+";","uuid",udata["uuid"],()=>{});
}
}
else{
db.sv("users","sids",inp["sid"]+";","uuid",udata["uuid"],()=>{});
}
});
// db.sv("users","id",udata["id"],"uuid",udata["uuid"]+"|"+uuid);
if(udata["admin"] == 1){
res.send({out:"goto",url:"/main"}); res.send({out:"goto",url:"/main"});
} // db.gv("users","uuid",udata["uuid"],(rdata)=>{
else{ // // console.log(rdata["sids"]);
res.send({out:"goto",url:"/main"}); // let sids = rdata["sids"];
// res.redirect("main"); // // console.log(sids.split(";"));
} // if(sids != null){
// if(sids.split(";").includes(inp["sid"])){
// console.log("good boy");
// }
// else{
// db.sv("users","sids",sids += inp["sid"]+";","uuid",udata["uuid"],()=>{});
// db.nr("sids",'`sid`,`uid`',`'${cook["sid"]}','${udata["id"]}'`);
// // db.sv("sids","uid",sids += inp["sid"]+";","uuid",udata["uuid"], ()=>{});
// }
// }
// else{
// db.sv("users","sids",inp["sid"]+";","uuid",udata["uuid"],()=>{});
// db.nr("sids",'`sid`,`uid`',`'${cook["sid"]}','${udata["id"]}'`);
// }
// });
// // db.sv("users","id",udata["id"],"uuid",udata["uuid"]+"|"+uuid);
// if(udata["admin"] == 1){
// res.send({out:"goto",url:"/main"});
// }
// else{
// res.send({out:"goto",url:"/main"});
// // res.redirect("main");
// }
} }
else{ else{
@ -94,7 +102,7 @@ app.post('/reg_user', (req, res) => {
console.log("/reg_user same uuid recs = "+udata); console.log("/reg_user same uuid recs = "+udata);
if(udata==null){ if(udata==null){
if(ldata==null){ if(ldata==null){
good_reg(); good_reg(udata);
console.log("/reg_user good reg"); console.log("/reg_user good reg");
console.log("/reg_user reged "+login+" uuid = "+uuid); console.log("/reg_user reged "+login+" uuid = "+uuid);
} }
@ -109,15 +117,18 @@ app.post('/reg_user', (req, res) => {
}) })
}) })
} }
function good_reg(){ function good_reg(udata){
db.nr("users",'`login`,`pass`,`uuid`,`admin`',`'${login}','${pass}','${uuid}',${admin}`); db.nr("users",'`login`,`pass`,`uuid`,`admin`',`'${login}','${pass}','${uuid}',${admin}`);
if (admin){
db.gv("users","uuid",`'${uuid}'`,(res)=>{ res = res[0]
db.nr("admins",'`login`,`uid`',`'${login}',${res["id"]}`);
})
}
res.redirect("/reg"); res.redirect("/reg");
} }
}) })
app.post("/sid_log",(req,res) =>{ app.post("/sid_log",(req,res) =>{
// console.log(req.cookies["sid"]);
// console.log(req.cookies["uuid"]);
let inp = req.body; let inp = req.body;
let cook = req.cookies; let cook = req.cookies;
@ -133,24 +144,6 @@ app.post("/sid_log",(req,res) =>{
} }
}) })
} }
// if(req.cookies["uuid"]!= null){
// let sid = req.cookies["sid"];
// let uuid = func.decrypt(req.cookies["uuid"],"key");
// db.gv("users","uuid",uuid,(rdata)=>{
// let sids = rdata["sids"];
// if(sids != null){
// // console.log(sids.split(";"));
// if(sids.split(";").includes(sid)){
// console.log("good boy "+rdata["login"]+" logged in by sid");
// res.send({out:"goto",url:"/user",args:{pass:rdata["pass"],uuid:uuid,login:rdata["login"]}});
// }
// else{
// res.redirect("/login");
// }
// }
// });
// }
}) })
app.post("/get_sid" , (req,res) =>{ app.post("/get_sid" , (req,res) =>{
@ -159,12 +152,50 @@ app.post("/get_sid" , (req,res) =>{
var week = 7 * 24 * 3600 * 1000; var week = 7 * 24 * 3600 * 1000;
res.cookie("sid",sid,{maxAge:(week),path:"/;SameSite=Strict"}); res.cookie("sid",sid,{maxAge:(week),path:"/;SameSite=Strict"});
res.send({out:"good"}); res.send({out:"good"});
});
app.post("/clear_sid" , (req,res) =>{
let inp = req.body;
let cook = req.cookies;
if(cook["uuid"] != null && cook["sid"] != null){
res.send({out:"good"});
db.dl("sids","sid",`'${cook["sid"]}'`,() =>{
console.log(cook["uuid"] + "logged out from "+cook["sid"]);
});
}
}); });
app.post("/get_cr_uuid", (req,res) => { app.post("/get_cr_uuid", (req,res) => {
let inp = req.body;
if(inp["uuid"] != null && inp["sid"] != null){
db.gv("users","uuid",`"${inp["uuid"]}"`,(udata)=>{udata = udata[0];
let re = udata;
delete re["pass"];
delete re["uuid"];
// delete re["sids"];
func.check_sid(inp,(include,id) => {
if(include){
res.send({out:"good",body:re});
}
else if (!include){
res.send({out:"bad",body:"expired"});
}
else{
res.send({out:"bad"});
}
}) })
});
}
})
// app.post("/set_cr_uuid", (req,res) => {
// let inp = req.body;
// if(inp["uuid"] != null && inp["sid"] != null){
// db.sv("users");
// }
// })
// app.post("/get_uuid" , (req,res) =>{ // app.post("/get_uuid" , (req,res) =>{
// let inp = req.body; // let inp = req.body;

View File

@ -23,13 +23,34 @@ function log(nlogin,npass){
}); });
} }
function get_uuid_name(){ function get_from_uuid(callback){
const uid = $.cookie("uuid"); const uid = $.cookie("uuid");
const sid = $.cookie("sid"); const sid = $.cookie("sid");
$.post( "/get_cr_uuid", { uuid:uid,sid:sid }) $.post( "/get_cr_uuid", { uuid:uid,sid:sid })
.done(function( res ) { .done(function( res ) {
if (res["out"] == "good"){ if (res["out"] == "good"){
callback(res["body"])
}
else if (res["out"] == bad){
if (res["body"] == "expired"){
clear_ck();
}
}
});
}
function get_from_uuid(callback){
const uid = $.cookie("uuid");
const sid = $.cookie("sid");
$.post( "/get_cr_uuid", { uuid:uid,sid:sid })
.done(function( res ) {
if (res["out"] == "good"){
console.log("good");
callback(res["body"])
}
else if (res["out"] == bad){
if (res["body"] == "expired"){
logout(true);
}
} }
}); });
} }
@ -37,7 +58,7 @@ function get_uuid_name(){
function log_by_sid() { function log_by_sid() {
// const uuid = $.cookie("uuid"); // const uuid = $.cookie("uuid");
// const sid = $.cookie("sid"); // const sid = $.cookie("sid");
console.log("log"); // console.log("log");
if($.cookie('sid') == null){ if($.cookie('sid') == null){
// get_sid(location.hostname); // get_sid(location.hostname);
clear_ck(false); clear_ck(false);
@ -55,6 +76,7 @@ function log_by_sid() {
} }
function clear_ck(redirect = true){ function clear_ck(redirect = true){
console.log("sid");
$.cookie("uuid",null); $.cookie("uuid",null);
$.cookie("sid",null); $.cookie("sid",null);
get_sid(location.hostname); get_sid(location.hostname);
@ -76,11 +98,27 @@ function check_sid(){
} }
} }
function logout() { function logout(quet = false) {
if (!quet)
{
let dialog = confirm("logout?"); let dialog = confirm("logout?");
if(dialog){ if(dialog){
$.post( "/clear_sid")
.done(function( res ) {
if(res["out"] == "good"){
clear_ck(); clear_ck();
} }
})
}
}
else{
$.post( "/clear_sid")
.done(function( res ) {
if(res["out"] == "good"){
clear_ck();
}
})
}
} }

View File

@ -2,10 +2,39 @@
header{ header{
display: flex; display: flex;
/* width: 90%; */ /* width: 90%; */
justify-content: space-evenly; justify-content: space-between;
width: 90%;
text-align: center;
margin: auto;
} }
#top_panel_right{
float: right;
}
#top_panel_left{
float: left;
}
/* button{
/* margin-inline: 5px; */
/* } */
</style> </style>
<header> <header id="top_panel">
<script>get_from_uuid((res)=>{
let uname = document.getElementById("user_name");
let header = document.getElementById("top_panel");
let right = document.getElementById("top_panel_right");
let left = document.getElementById("top_panel_left");
left.innerHTML += res["login"];
if (res["admin"] == true){
right.innerHTML += "<button>admin panel</button>";
}
right.innerHTML += "<button onclick='logout();'>logout</button>";
});
</script>
<!-- <div id="user_name"></div> -->
<div id="top_panel_left"></div>
<div>puzzle</div> <div>puzzle</div>
<div><button onclick="logout();">logout</button></div> <div id="top_panel_right"></div>
<!-- <div><button onclick="logout();">logout</button></div> -->
</header> </header>

View File

@ -44,12 +44,6 @@
<%- include('./header.ejs') %> <%- include('./header.ejs') %>
<script src="/lib/interact.min.js"></script> <script src="/lib/interact.min.js"></script>
<h1>none</h1>
<h1>hello</h1>
<div id="drags"></div> <div id="drags"></div>
<div class="dropzone"></div> <div class="dropzone"></div>
@ -61,54 +55,3 @@
<script src="/lib/inter.js"></script> <script src="/lib/inter.js"></script>
<%- include('./static/end.ejs') %> <%- include('./static/end.ejs') %>
<!-- template -->
<!-- ondropactivate: function (event) {
var drag = event.relatedTarget
var zone = event.target
// add active dropzone feedback
// console.log(drag.getAttribute('data-x'));
zone.classList.add('drop-active')
},
ondragenter: function (event) {
var drag = event.relatedTarget
var zone = event.target
// feedback the possibility of a drop
// console.log(drag.getAttribute('data-x'));
drag.classList.add('can-drop')
// draggableElement.textContent = 'Dragged in'
},
ondragleave: function (event) {
var drag = event.relatedTarget
var zone = event.target
// remove the drop feedback style
// console.log(drag.getAttribute('data-x'));
zone.classList.remove('drop-target')
drag.classList.remove('in_zone')
drag.classList.remove('can-drop')
// event.relatedTarget.textContent = 'Dragged out'
},
ondrop: function (event) {
var drag = event.relatedTarget
var zone = event.target
// console.log(drag.getAttribute('data-x'));
// console.log();
objs[drag.classList[0]][drag.id] = {y:drag.getAttribute('data-y'),x:drag.getAttribute('data-x'),body:drag.innerHTML};
$.cookie("objs",JSON.stringify(objs));
drag.classList.add('in_zone')
drag.classList.remove('can-drop')
// draggableElement.textContent = 'Dropped'
},
ondropdeactivate: function (event) {
var drag = event.relatedTarget
var zone = event.target
// remove active dropzone feedback
// console.log(drag.getAttribute('data-x'));
zone.classList.remove('drop-active')
zone.classList.remove('drop-target')
}
}) -->