mirror of
https://github.com/Foltik/Shimapan
synced 2024-12-04 03:15:20 -05:00
67 lines
1.9 KiB
JavaScript
67 lines
1.9 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
|
|
const ModelPath = '../../models/';
|
|
const User = require(ModelPath + 'User.js');
|
|
|
|
const verifyBody = require('../../util/verifyBody');
|
|
const authenticate = require('../../util/auth/authenticateRequest');
|
|
|
|
|
|
|
|
const getParams = [
|
|
{name: 'username', type: 'string', optional: true},
|
|
{name: 'displayname', type: 'string', optional: true}];
|
|
|
|
router.get('/get', authenticate('user.get'), verifyBody(getParams), async (req, res) => {
|
|
let query = {};
|
|
|
|
if (req.body.username)
|
|
query.username = req.body.username;
|
|
|
|
if (req.body.displayname)
|
|
query.displayname = req.body.displayname;
|
|
|
|
//const users = User.find(query, 'username displayname scope uploadCount uploadSize date banned');
|
|
const users = await User.find(query);
|
|
|
|
res.status(200).json(users);
|
|
});
|
|
|
|
|
|
|
|
const banParams = [{name: 'username', type: 'string'}];
|
|
|
|
router.post('/ban', authenticate('user.ban'), verifyBody(banParams), async (req, res) => {
|
|
const user = await User.findOne({username: req.body.username});
|
|
if (!user)
|
|
return res.status(422).json({message: 'User not found.'});
|
|
|
|
if (user.banned)
|
|
return res.status(422).json({message: 'User already banned.'});
|
|
|
|
user.banned = true;
|
|
await user.save();
|
|
|
|
res.status(200).json({message: 'User banned.'});
|
|
});
|
|
|
|
|
|
|
|
const unbanParams = [{name: 'username', type: 'string'}];
|
|
|
|
router.post('/unban', authenticate('user.unban'), verifyBody(unbanParams), async (req, res) => {
|
|
const user = await User.findOne({username: req.body.username});
|
|
if (!user)
|
|
return res.status(422).json({message: 'User not found.'});
|
|
|
|
if (!user.banned)
|
|
return res.status(422).json({message: 'User not banned.'});
|
|
|
|
user.banned = false;
|
|
await user.save();
|
|
|
|
res.status(200).json({message: 'User unbanned.'});
|
|
});
|
|
|
|
module.exports = router; |