Removed everything minecraft-related, added image scope to oauth, replaced github with gitlab.
This commit is contained in:
parent
c184695b04
commit
5534eb0a18
6460
package-lock.json
generated
6460
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
60
package.json
60
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "icynet.eu",
|
"name": "icynet.eu",
|
||||||
"version": "0.9.0",
|
"version": "0.9.1",
|
||||||
"description": "Icy Network web server",
|
"description": "Icy Network web server",
|
||||||
"main": "icynet.eu.js",
|
"main": "icynet.eu.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -16,7 +16,7 @@
|
|||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/IcyNet/IcyNet.eu.git"
|
"url": "git+https://gitlab.icynet.eu/IcyNetwork/IcyNet.eu.git"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"website",
|
"website",
|
||||||
@ -30,55 +30,55 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/IcyNet/IcyNet.eu#readme",
|
"homepage": "https://github.com/IcyNet/IcyNet.eu#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"babel-core": "^6.26.0",
|
"babel-core": "^6.26.3",
|
||||||
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.0",
|
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
|
||||||
"bcryptjs": "^2.4.3",
|
"bcryptjs": "^2.4.3",
|
||||||
"bluebird": "^3.5.1",
|
"bluebird": "^3.5.1",
|
||||||
"body-parser": "^1.18.2",
|
"body-parser": "^1.18.3",
|
||||||
"connect-redis": "^3.3.2",
|
"connect-redis": "^3.3.3",
|
||||||
"connect-session-knex": "^1.4.0",
|
"connect-session-knex": "^1.4.0",
|
||||||
"email-templates": "^2.7.1",
|
"email-templates": "^2.7.1",
|
||||||
"express": "^4.16.2",
|
"express": "^4.16.3",
|
||||||
"express-rate-limit": "^2.9.0",
|
"express-rate-limit": "^2.11.0",
|
||||||
"express-session": "^1.15.6",
|
"express-session": "^1.15.6",
|
||||||
"feed": "^1.1.1",
|
"feed": "^1.1.1",
|
||||||
"fs-extra": "^4.0.2",
|
"fs-extra": "^4.0.3",
|
||||||
"gm": "^1.23.0",
|
"gm": "^1.23.1",
|
||||||
"knex": "^0.13.0",
|
"knex": "^0.14.6",
|
||||||
"multiparty": "^4.1.3",
|
"multiparty": "^4.1.4",
|
||||||
"mysql": "^2.15.0",
|
"mysql": "^2.15.0",
|
||||||
"nodemailer": "^4.4.0",
|
"nodemailer": "^4.6.5",
|
||||||
"notp": "^2.0.3",
|
"notp": "^2.0.3",
|
||||||
"oauth-libre": "^0.9.17",
|
"oauth-libre": "^0.9.17",
|
||||||
"objection": "^0.8.9",
|
"objection": "^0.8.9",
|
||||||
"pug": "^2.0.0-rc.4",
|
"pug": "^2.0.3",
|
||||||
"serve-favicon": "^2.4.5",
|
"serve-favicon": "^2.5.0",
|
||||||
"stylus": "^0.54.5",
|
"stylus": "^0.54.5",
|
||||||
"thirty-two": "^1.0.2",
|
"thirty-two": "^1.0.2",
|
||||||
"toml": "^2.3.3",
|
"toml": "^2.3.3",
|
||||||
"uuid": "^3.1.0",
|
"uuid": "^3.2.1",
|
||||||
"vue": "^2.5.9"
|
"vue": "^2.5.16"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel-loader": "^7.1.2",
|
"babel-loader": "^7.1.4",
|
||||||
"babel-preset-env": "^1.6.1",
|
"babel-preset-env": "^1.7.0",
|
||||||
"bootstrap": "^4.0.0",
|
"bootstrap": "^4.1.1",
|
||||||
"concurrently": "^3.5.1",
|
"concurrently": "^3.5.1",
|
||||||
"eslint-plugin-import": "^2.8.0",
|
"eslint-plugin-import": "^2.12.0",
|
||||||
"jquery": "^3.2.1",
|
"jquery": "^3.3.1",
|
||||||
"morgan": "^1.9.0",
|
"morgan": "^1.9.0",
|
||||||
"mustache": "^2.3.0",
|
"mustache": "^2.3.0",
|
||||||
"popper.js": "^1.12.9",
|
"popper.js": "^1.14.3",
|
||||||
"standard": "^10.0.3",
|
"standard": "^10.0.3",
|
||||||
"uglifyjs-webpack-plugin": "^1.1.2",
|
"uglifyjs-webpack-plugin": "^1.2.5",
|
||||||
"vue-clickaway": "^2.1.0",
|
"vue-clickaway": "^2.2.2",
|
||||||
"vue-loader": "^13.5.0",
|
"vue-loader": "^13.7.2",
|
||||||
"vue-resource": "^1.3.4",
|
"vue-resource": "^1.5.1",
|
||||||
"vue-router": "^3.0.1",
|
"vue-router": "^3.0.1",
|
||||||
"vue-template-compiler": "^2.5.9",
|
"vue-template-compiler": "^2.5.16",
|
||||||
"watch": "^1.0.2",
|
"watch": "^1.0.2",
|
||||||
"webpack": "^3.10.0",
|
"webpack": "^3.12.0",
|
||||||
"webpack-merge": "^4.1.1"
|
"webpack-merge": "^4.1.2"
|
||||||
},
|
},
|
||||||
"standard": {
|
"standard": {
|
||||||
"env": {
|
"env": {
|
||||||
|
@ -1,53 +0,0 @@
|
|||||||
import crypto from 'crypto'
|
|
||||||
|
|
||||||
import API from './index'
|
|
||||||
import Model from './models'
|
|
||||||
|
|
||||||
const mAPI = {
|
|
||||||
getMinecraftUsername: async function (user) {
|
|
||||||
user = await API.User.ensureObject(user)
|
|
||||||
|
|
||||||
let verified = await Model.MinecraftMember.query().where('user_id', user.id)
|
|
||||||
if (verified.length) return verified[0].name
|
|
||||||
|
|
||||||
return null
|
|
||||||
},
|
|
||||||
getToken: async function (user) {
|
|
||||||
user = await API.User.ensureObject(user)
|
|
||||||
|
|
||||||
let verified = await Model.MinecraftMember.query().where('user_id', user.id)
|
|
||||||
if (verified.length) return {token: null, mcu: verified[0]}
|
|
||||||
|
|
||||||
let token = await Model.MinecraftToken.query().where('user_id', user.id)
|
|
||||||
if (!token.length) {
|
|
||||||
token = crypto.randomBytes(4).toString('hex')
|
|
||||||
await Model.MinecraftToken.query().insert({
|
|
||||||
token: token,
|
|
||||||
user_id: user.id,
|
|
||||||
created_at: new Date()
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
token = token[0].token
|
|
||||||
}
|
|
||||||
|
|
||||||
return {token: token, mcu: null}
|
|
||||||
},
|
|
||||||
verifyToken: async function (raw, name, uuid) {
|
|
||||||
let token = await Model.MinecraftToken.query().where('token', raw)
|
|
||||||
if (!token.length) return null
|
|
||||||
token = token[0]
|
|
||||||
|
|
||||||
await Model.MinecraftMember.query().insert({
|
|
||||||
uuid: uuid,
|
|
||||||
name: name,
|
|
||||||
user_id: token.user_id,
|
|
||||||
created_at: new Date()
|
|
||||||
})
|
|
||||||
|
|
||||||
await Model.MinecraftToken.query().delete().where('id', token.id)
|
|
||||||
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = mAPI
|
|
@ -9,13 +9,11 @@ import wrap from '../../scripts/asyncRoute'
|
|||||||
import http from '../../scripts/http'
|
import http from '../../scripts/http'
|
||||||
import API from '../api'
|
import API from '../api'
|
||||||
import News from '../api/news'
|
import News from '../api/news'
|
||||||
import Minecraft from '../api/minecraft'
|
|
||||||
import emailer from '../api/emailer'
|
import emailer from '../api/emailer'
|
||||||
|
|
||||||
import apiRouter from './api'
|
import apiRouter from './api'
|
||||||
import oauthRouter from './oauth2'
|
import oauthRouter from './oauth2'
|
||||||
import adminRouter from './admin'
|
import adminRouter from './admin'
|
||||||
import mcRouter from './minecraft'
|
|
||||||
|
|
||||||
let router = express.Router()
|
let router = express.Router()
|
||||||
|
|
||||||
@ -283,17 +281,8 @@ router.get('/user/manage/email', ensureLogin, wrap(async (req, res) => {
|
|||||||
|
|
||||||
router.get('/donate', wrap(async (req, res, next) => {
|
router.get('/donate', wrap(async (req, res, next) => {
|
||||||
if (!config.donations || !config.donations.business) return next()
|
if (!config.donations || !config.donations.business) return next()
|
||||||
let mcu = null
|
|
||||||
|
|
||||||
if (config.donations.minecraft && req.session.user) {
|
res.render('donate', config.donations)
|
||||||
mcu = await Minecraft.getMinecraftUsername(req.session.user)
|
|
||||||
}
|
|
||||||
|
|
||||||
let cfg = Object.assign({
|
|
||||||
minecraftName: mcu
|
|
||||||
}, config.donations)
|
|
||||||
|
|
||||||
res.render('donate', cfg)
|
|
||||||
}))
|
}))
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -842,7 +831,6 @@ router.get('/logout', (req, res) => {
|
|||||||
|
|
||||||
router.use('/api', apiRouter)
|
router.use('/api', apiRouter)
|
||||||
router.use('/admin', adminRouter)
|
router.use('/admin', adminRouter)
|
||||||
router.use('/mc', mcRouter)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
NO ROUTES BEYOND THIS POINT
|
NO ROUTES BEYOND THIS POINT
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
import express from 'express'
|
|
||||||
|
|
||||||
import ensureLogin from '../../scripts/ensureLogin'
|
|
||||||
import wrap from '../../scripts/asyncRoute'
|
|
||||||
import Minecraft from '../api/minecraft'
|
|
||||||
|
|
||||||
let router = express.Router()
|
|
||||||
|
|
||||||
router.get('/', ensureLogin, wrap(async (req, res) => {
|
|
||||||
let token = await Minecraft.getToken(req.session.user)
|
|
||||||
|
|
||||||
res.render('minecraft/index', {token: token.token, mcu: token.mcu})
|
|
||||||
}))
|
|
||||||
|
|
||||||
router.post('/verify/', wrap(async (req, res) => {
|
|
||||||
if (!req.body.name || !req.body.uuid || !req.body.token) return res.status(400).jsonp({error: 'Missing field.'})
|
|
||||||
|
|
||||||
let verify = await Minecraft.verifyToken(req.body.token, req.body.name, req.body.uuid)
|
|
||||||
if (!verify) return res.status(400).jsonp({error: 'Already verified.'})
|
|
||||||
|
|
||||||
res.status(200).end()
|
|
||||||
}))
|
|
||||||
|
|
||||||
module.exports = router
|
|
@ -4,6 +4,7 @@ import UAPI from '../api'
|
|||||||
import OAuth2 from '../api/oauth2'
|
import OAuth2 from '../api/oauth2'
|
||||||
import RateLimit from 'express-rate-limit'
|
import RateLimit from 'express-rate-limit'
|
||||||
import wrap from '../../scripts/asyncRoute'
|
import wrap from '../../scripts/asyncRoute'
|
||||||
|
import config from '../../scripts/load-config.js'
|
||||||
|
|
||||||
let router = express.Router()
|
let router = express.Router()
|
||||||
let oauth = new OAuth2()
|
let oauth = new OAuth2()
|
||||||
@ -44,8 +45,7 @@ router.get('/user', oauth.bearer, wrap(async (req, res) => {
|
|||||||
id: user.id,
|
id: user.id,
|
||||||
uuid: user.uuid,
|
uuid: user.uuid,
|
||||||
username: user.username,
|
username: user.username,
|
||||||
display_name: user.display_name,
|
display_name: user.display_name
|
||||||
avatar_file: user.avatar_file
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Include Email
|
// Include Email
|
||||||
@ -53,6 +53,12 @@ router.get('/user', oauth.bearer, wrap(async (req, res) => {
|
|||||||
udata.email = user.email
|
udata.email = user.email
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Include Avatar
|
||||||
|
if (accessToken.scope.indexOf('image') !== -1 && user.avatar_file) {
|
||||||
|
udata.image = `${config.server.domain}/api/avatar/${user.uuid}`
|
||||||
|
udata.image_file = user.avatar_file
|
||||||
|
}
|
||||||
|
|
||||||
// Include privilege number
|
// Include privilege number
|
||||||
if (accessToken.scope.indexOf('privilege') !== -1) {
|
if (accessToken.scope.indexOf('privilege') !== -1) {
|
||||||
udata.privilege = user.nw_privilege
|
udata.privilege = user.nw_privilege
|
||||||
|
@ -396,8 +396,9 @@ noscript
|
|||||||
border-radius: 100px
|
border-radius: 100px
|
||||||
padding: 0 2px
|
padding: 0 2px
|
||||||
margin: 5px
|
margin: 5px
|
||||||
&#github
|
&#gitlab
|
||||||
background-color: #000
|
background-color: #292961
|
||||||
|
font-size: 115%
|
||||||
&#twitter
|
&#twitter
|
||||||
background-color: #03a9f4
|
background-color: #03a9f4
|
||||||
&#discord
|
&#discord
|
||||||
@ -418,6 +419,8 @@ noscript
|
|||||||
width: 22px
|
width: 22px
|
||||||
height: 22px
|
height: 22px
|
||||||
display: block
|
display: block
|
||||||
|
&:hover
|
||||||
|
color: #ddd
|
||||||
|
|
||||||
@media all and (max-width: 500px)
|
@media all and (max-width: 500px)
|
||||||
section
|
section
|
||||||
|
@ -29,24 +29,9 @@ block body
|
|||||||
option(value="EUR") EUR
|
option(value="EUR") EUR
|
||||||
option(value="USD") USD
|
option(value="USD") USD
|
||||||
if user
|
if user
|
||||||
if minecraftName
|
input#custominfo(type="hidden", name="custom", value="userid:" + user.id)
|
||||||
input#custominfo(type="hidden", name="custom", value="userid:" + user.id + ",mcu:" + minecraftName)
|
|
||||||
else
|
|
||||||
input#custominfo(type="hidden", name="custom", value="userid:" + user.id)
|
|
||||||
else
|
else
|
||||||
input#custominfo(type="hidden", name="custom", value="")
|
input#custominfo(type="hidden", name="custom", value="")
|
||||||
if minecraft
|
|
||||||
if minecraftName
|
|
||||||
p Donation will also be forwarded to the Minecraft server as
|
|
||||||
b= minecraftName
|
|
||||||
| .
|
|
||||||
else
|
|
||||||
.form-check.form-check-inline
|
|
||||||
input.form-check-input(id="mcinclude" type="checkbox" checked="false")
|
|
||||||
label.form-check-label(for="mcinclude") Include Minecraft Username
|
|
||||||
.mcuname.form-group(style="display: none;")
|
|
||||||
label(for="mcusername") Minecraft Username
|
|
||||||
input.form-control(id="mcusername", autocomplete="off")
|
|
||||||
.buttoncont
|
.buttoncont
|
||||||
a.btn.btn-primary.text-light(name="submit", onclick="$(this).closest('form').submit()")
|
a.btn.btn-primary.text-light(name="submit", onclick="$(this).closest('form').submit()")
|
||||||
i.fa.fa-fw.fa-paypal
|
i.fa.fa-fw.fa-paypal
|
||||||
|
@ -38,9 +38,9 @@ block body
|
|||||||
span.circular-header.bg-success
|
span.circular-header.bg-success
|
||||||
i.fa.fa-fw.fa-github
|
i.fa.fa-fw.fa-github
|
||||||
h2 Open Source
|
h2 Open Source
|
||||||
p All of our services are Free and Open Source Software (FOSS) hosted on GitHub.
|
p All of our services are Free and Open Source Software (FOSS) hosted on our own GitLab instance.
|
||||||
p
|
p
|
||||||
a.btn.btn-secondary(href="https://github.com/IcyNet", target="_blank") Browse Repositories
|
a.btn.btn-secondary(href="https://gitlab.icynet.eu/IcyNetwork", target="_blank") Browse Repositories
|
||||||
.col-lg-4
|
.col-lg-4
|
||||||
span.circular-header.bg-info
|
span.circular-header.bg-info
|
||||||
i.fa.fa-fw.fa-users
|
i.fa.fa-fw.fa-users
|
||||||
|
@ -100,8 +100,8 @@ html
|
|||||||
| ·
|
| ·
|
||||||
a(href="/donate") Donate
|
a(href="/donate") Donate
|
||||||
.d-flex.justify-content-center
|
.d-flex.justify-content-center
|
||||||
a.btn-social#github(href="https://github.com/IcyNet/" target="_blank")
|
a.btn-social#gitlab(href="https://gitlab.icynet.eu/IcyNetwork/" target="_blank")
|
||||||
i.fa.fa-fw.fa-github
|
i.fa.fa-fw.fa-gitlab
|
||||||
a.btn-social#twitter(href="https://twitter.com/IcyNet" target="_blank")
|
a.btn-social#twitter(href="https://twitter.com/IcyNet" target="_blank")
|
||||||
i.fa.fa-fw.fa-twitter
|
i.fa.fa-fw.fa-twitter
|
||||||
a.btn-social#discord(href="https://discord.gg/Xe7MKSx" target="_blank")
|
a.btn-social#discord(href="https://discord.gg/Xe7MKSx" target="_blank")
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
extends ../layout.pug
|
|
||||||
block title
|
|
||||||
|Icy Network - Minecraft Server
|
|
||||||
|
|
||||||
block body
|
|
||||||
.container
|
|
||||||
h1 Minecraft Server
|
|
||||||
p Link your Icy Network account with your Minecraft account on our server
|
|
||||||
if token
|
|
||||||
p Run the following command on the Minecraft Server:
|
|
||||||
code /verify #{token}
|
|
||||||
else
|
|
||||||
p You've already logged in as
|
|
||||||
b= mcu.name
|
|
||||||
|
|
Reference in New Issue
Block a user