This repository was archived by the owner on Sep 3, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
108 lines (87 loc) · 2.73 KB
/
index.js
File metadata and controls
108 lines (87 loc) · 2.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
// app.js
const express = require('express')
const expressValidator = require('express-validator')
const session = require('cookie-session')
const bodyParser = require('body-parser')
const favicon = require('serve-favicon')
const path = require('path')
const userQuery = require('./db/userQuerys')
const root = require('./routes/root')
const login = require('./routes/login')
const register = require('./routes/register')
const home = require('./routes/home')
const blog = require('./routes/blog')
const article = require('./routes/article')
const submit = require('./routes/submit')
const project = require('./routes/project')
const projecter = require('./routes/projecter')
const profile = require('./routes/profile')
const logout = require('./routes/logout')
const admin = require('./routes/admin')
const about = require('./routes/about')
const resources = require('./routes/resources')
const api = require('./routes/api')
const app = express()
app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')))
app.use(express.static('public'))
app.use(express.static('bower_components'))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))
app.set('trust proxy', 1)
app.use(session({
name: 'session',
secret: process.env.SECRET || "jetarabiscottesouventEnandalousie",
// keys: new Keygrip(secret, 'SHA256', 'base64'),
// Options
path: '/',
httpOnly: true,
secure: true, // need https rev-proxie
signed: true,
maxAge: 172800000, // 48 * 60 * 60 * 1000 = 48h
sameSite: 'strict',
}))
app.use(expressValidator())
let check = (req, res, next) => {
if (req.session.user) {
next()
} else {
res.redirect('/login')
}
}
let adminCheck = (req, res, next) => {
userQuery
.getUserByUsername(req.session.user.username)
.then(queryResponse => {
if (queryResponse.role_id !== 1) {
res.redirect('/home')
} else {
next()
}
}).catch(e => console.error(e))
}
// Routing Start
app.use('/login', login)
app.use('/', root)
app.use('/register', register)
app.use('/home', check, home)
app.use('/blog', check, blog)
app.use('/article', check, article)
app.use('/submit', check, submit)
app.use('/project', check, project)
app.use('/projecter', check, projecter)
app.use('/profile', check, profile)
app.use('/logout', check, logout)
app.use('/admin', check, adminCheck, admin)
app.use('/about', check, about)
app.use('/resources', check, resources)
app.use('/api', api)
app.get('*', (req, res) => {
res.status(404).render('404.ejs', {
reqUrl: req.url
})
})
// Routing End
const port = process.env.PORT || 8080
app.listen(port, () => {
console.log('Listening on port: ' + port);
})