|
- 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;
|