-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsecurity.js
More file actions
123 lines (101 loc) · 2.76 KB
/
Copy pathsecurity.js
File metadata and controls
123 lines (101 loc) · 2.76 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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
const express = require('express')
const path = require('path');
const bodyParser = require('body-parser')
const consolidate = require('consolidate')
const user = require('./models/user')
const session = require('express-session')
const MysqlStore = require('express-mysql-session')(session)
const config = require('./models/config.json')
const passport = require('./auth')
const sessionStore = new MysqlStore(config)
const User = new user
const app = express()
app.use(session({
secret: 'session_cookie_secret',
store: sessionStore,
resave: true,
saveUninitialized: true,
}))
app.use(passport.initialize);
app.use(passport.session);
app.use(bodyParser())
app.engine('hbs', consolidate.handlebars)
app.set('view engine', 'hbs');
app.set('views', path.resolve(__dirname, 'views'))
const mustBeAuthenticated = (req, res, next) => {
if (req.user) {
next();
} else {
res.redirect('/auth')
}
}
app.get('/auth', (req, res) => {
const error = !!req.query.error; // string -> false -> true
res.render('auth', {
error
});
});
app.post('/auth', passport.authenticate)
app.use('/tasks', mustBeAuthenticated)
//app.use('/users', mustBeAuthenticated)
app.use('/styles', express.static(path.resolve(__dirname, 'assets/')))
const routes = require("./routes/tasks")
app.use('/', routes)
app.get('/users', (req, res) => {
User.getAll().then(result => {
res.render('users', result)
},
error => {
console.log(error)
}
)
});
app.get('/users/:id', (req, res) => {
User.getById(req.params.id).then(result => {
res.json(result)
},
error => {
console.log(error)
}
)
})
app.post('/users', (req, res) => {
switch (req.body._method) {
case "DELETE":
User.deleteById(req.body.users_id).then(result => {
res.send("Пользователь удален")
},
error => {
console.log(error)
})
break
case "PUT":
User.updateById(req.body.users_id, req.body).then(result => {
res.redirect('/users')
},
error => {
console.log(error)
}
)
break
default:
User.add(req.body).then(result => {
res.redirect('/users')
},
error => {
console.log(error)
}
)
break
}
})
app.get('/auth', (req, res) => {
res.render('auth')
})
app.get('/logout', (req, res) => {
req.logout();
res.redirect('/auth');
});
app.listen(8888, () => {
console.log('Server has been started!');
});