var express = require('express')
var router = express.Router()
var settings = require('../../settings')
router.get('/', async function(req, res, next) {
settings.dLogo = 'ទំព័រអ្នកប្រើប្រាស់'
if(req.session.user){
const today = new Date()
const date = today.toLocaleDateString('fr-CA')
const time = today.toLocaleTimeString('it-IT')
settings.datetime = date + 'T' + time
const count = await require('../../controllers/users/count')()
settings.message = `ចំនួនអ្នកប្រើប្រាស់សរុបៈ ${count}`
const read = await require('../../controllers/users/read')
settings.items = await read(settings.dItemLimit)
settings.route = 'user'
res.render('users/user', settings)
}else{
res.redirect('/users')
}
})
router.post('/', async function(req, res, next) {
if(req.session.user){
if(req.session.user.role === 'Admin'){
await require('../../controllers/users/create')(req)
}
res.redirect('/users/user')
}else{
res.redirect('/users')
}
})
router.get('/edit/:id', async function(req, res, next) {
if(req.session.user){
settings.dLogo = 'ទំព័រកែប្រែអ្នកប្រើប្រាស់'
const user = await require('../../controllers/users/read')(false, req.params.id)
if((req.session.user.role === 'Admin') || (req.session.user.userid === user.userid)){
const date = user.date.toLocaleDateString('fr-CA')
const time = user.date.toLocaleTimeString('it-IT')
settings.datetime = date + 'T' + time
settings.user = user
settings.route = 'user'
res.render('users/edit_user', settings)
}else{
res.redirect('/users/user')
}
}else{
res.redirect('/users')
}
})
router.post('/edit/:id', async function(req, res, next){
if(req.session.user){
await require('../../controllers/users/update')(req)
res.redirect('/users/user/edit/' + req.params.id)
}else{
res.redirect('/users')
}
})
module.exports = router
const schema = require('./schema')
const bcrypt = require('bcryptjs')
async function updateUser(req){
const userSchema = await schema()
const user = await userSchema.findOne({userid: req.params.id})
user.username = req.body.username
if(user.password !== req.body.password){
const hash = bcrypt.hashSync(req.body.password, 12)
user.password = hash
}
user.email = req.body.email
user.thumb = req.body.thumb
user.info = req.body.info
user.video = req.body.entries
user.date = new Date(req.body.datetime)
if(req.session.user.role === 'Admin'){
user.role = req.body.role
}
return await user.save()
}
module.exports = updateUser
GitHub: https://github.com/Sokhavuth/tv
Vercel: https://tv-neon.vercel.app
Responsive: http://www.responsinator.com