Compare commits

..

6 Commits

Author SHA1 Message Date
nannal
55822c2991 Fixed to allow users to edit their own entries 2020-11-18 23:26:50 +02:00
nannal
9914018163 Migrated mods to mongo & allowed add new mods 2020-11-15 01:18:21 +02:00
nannal
cb6e84dab2 Limited arr length to 1 2020-10-07 18:57:40 +03:00
nannal
e12739b781 missing var 2020-10-07 02:38:02 +03:00
nannal
186ae12263 remove i, do it before building 2020-10-07 02:35:14 +03:00
nannal
335ff230fd more open types 2020-10-07 02:34:49 +03:00
4 changed files with 75 additions and 38 deletions

View File

@@ -9,6 +9,4 @@ EXPOSE 3000
WORKDIR /data
RUN "npm i"
CMD ["node", "index.js"]

View File

@@ -1,7 +1,6 @@
const express = require('express')
const bodyParser = require('body-parser');
const list = require("./listManager.js");
const { response } = require('express');
const app = express()
app.use(bodyParser.json(),function (req, res, next) {
@@ -13,15 +12,8 @@ app.use(bodyParser.json(),function (req, res, next) {
next()
})
app.get('/meta/blacklist', function (req, res) {
list.getAllBlack().then(r => {
res.send(JSON.stringify(r))
})
})
app.get('/meta/greylist', function (req, res) {
list.getAllGrey().then(r => {
app.get('/status/:status', function (req, res) {
list.getStatus(req.params.status).then(r => {
res.send(JSON.stringify(r))
})
})
@@ -33,9 +25,15 @@ app.get('/account/:username', function (req, res) {
})
app.post('/submit', function (req, res) {
console.log(req.body)
list.writeUser(req.body).then(r => {
res.send(JSON.stringify(r))
})
})
app.post('/approve', function (req, res) {
list.approveUser(req.body).then(r => {
res.send(JSON.stringify(r))
})
})
app.listen(3000)

View File

@@ -1,14 +1,15 @@
const fetch = require('node-fetch')
const secp256k1 = require('secp256k1')
const bs58 = require('base-x')("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")
const allowedUsers = require("./users.js")
var mongo = require("./mongoHelp.js")
async function verifyMsg (obj, username) {
if (!allowedUsers.includes(obj.sender)) {
async function verifyMsg (obj) {
userLookup = await mongo.get("list","allowedUsers",{user:obj.sender})
senderProtectionCheck = await mongo.get("list","allowedUsers",{user:obj.user})
if (userLookup.length == 0 ) {
return {"Message": "User Not Allowed"}
} else if (allowedUsers.includes(username)) {
} else if (senderProtectionCheck.length != 0) {
return {"Message": "Can't modify trusted users"}
} else {
result = await fetch("https://avalon.d.tube/account/"+obj.sender)
@@ -19,7 +20,6 @@ async function verifyMsg (obj, username) {
if (sender.keys)
for (let i = 0; i < sender.keys.length; i++)
allowedPubKeys.push(sender.keys[i].pub)
console.log(allowedPubKeys)
for (let i = 0; i < allowedPubKeys.length; i++) {
var bufferHash = Buffer.from(obj.hash, 'hex')
var b58sign = bs58.decode(obj.signature)
@@ -32,38 +32,79 @@ async function verifyMsg (obj, username) {
}
}
// {
// "user": "bigbootybitch",
// "status": "black",
// "reason": "1",
// "sender": "nannal",
// "ts": 1602024774158,
// "hash": "e5eb92c035c2528af5311998d14bf0be3ced0e87505c8f6481ce7ca63148b974",
// "signature": "bjNjRSnuJokydPzGCKZy7kExDeAT8mUS3iCzRzQR3y5owaBh1Mhh2UyPLHqR3bzxsK6fw13JtvCz65exPr2JsGB"
// }
list = {
getAllBlack: async () => {
return await mongo.get("list","list",{"status": "black"})
},
getAllGrey: async () => {
return await mongo.get("list","list",{"status": "black"})
getStatus: async (status) => {
return await mongo.get("list","list",{"status": status})
},
getUser: async (username) => {
return await mongo.get("list","list",{"user": username})
res = await mongo.get("list","list",{"user": username})
return res[0]
},
writeUser: async (obj) => {
ver = await verifyMsg(obj)
if (ver == true) {
console.log(obj)
mongo.put("list","list",obj)
limitedObj={
user: obj.user,
status: obj.status,
reason: obj.reason,
sender: obj.sender,
ts: obj.ts,
hash: obj.hash,
signature: obj.signature,
}
res = await mongo.get("list","list",{"user": limitedObj.user})
if (res.length > 0 ){
if (limitedObj.sender == res[0].sender){
mongo.update("list","list",{"user": limitedObj.user}, limitedObj)
} else {
console.log(res[0])
return {"Message": "This user is controlled by "+res[0].sender+" contact them to modify this entry, in an emergency contant nannal"}
}
} else {
mongo.put("list","list", limitedObj)
}
mongo.update("list","list",{"user": limitedObj.user}, limitedObj)
return {"Message":"Success"}
} else {
return ver
}
},
approveUser: async (obj) => {
ver = await verifyMsg(obj)
if (ver == true) {
limitedObj={
user: obj.user,
sender: obj.sender,
ts: obj.ts,
hash: obj.hash,
signature: obj.signature,
}
res = await mongo.get("list","allowedUsers",{"user": limitedObj.user})
if (res.length > 0 ){
return {"message":"User already approved by "+res.sender}
} else {
mongo.put("list","allowedUsers", limitedObj)
return {"Message":"Success"}
}
} else {
return ver
}
},
verifyUser: async (obj) => {
ver = await verifyMsg(obj)
if (ver == true) {
limitedObj ={
}
} else {
return ver
}
}
}
module.exports = list

View File

@@ -1,3 +1,3 @@
users = ["nannal", "hightouch"]
users = ["nannal", "hightouch", "tibfox"]
module.exports = users