X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fapi%2Fusers.ts;h=f50dbc9a31a3e31833eb39fce629f08b4f291bcc;hb=291e8d3eed88fe714fb74ad897ac2c67347a85ff;hp=ffe5881e5594040e6a5cb9f99fcaf84cee6e59bd;hpb=69818c9394366b954b6ba3bd697bd9d2b09f2a16;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/users.ts b/server/controllers/api/users.ts index ffe5881e5..f50dbc9a3 100644 --- a/server/controllers/api/users.ts +++ b/server/controllers/api/users.ts @@ -1,12 +1,12 @@ import * as express from 'express' -import { waterfall } from 'async' import { database as db } from '../../initializers/database' -import { CONFIG, USER_ROLES } from '../../initializers' +import { USER_ROLES } from '../../initializers' import { logger, getFormatedObjects } from '../../helpers' import { authenticate, ensureIsAdmin, + ensureUserRegistrationAllowed, usersAddValidator, usersUpdateValidator, usersRemoveValidator, @@ -17,6 +17,7 @@ import { setUsersSort, token } from '../../middlewares' +import { UserVideoRate as FormatedUserVideoRate, UserCreate, UserUpdate } from '../../../shared' const usersRouter = express.Router() @@ -47,7 +48,7 @@ usersRouter.post('/', ) usersRouter.post('/register', - ensureRegistrationEnabled, + ensureUserRegistrationAllowed, usersAddValidator, createUser ) @@ -76,96 +77,74 @@ export { // --------------------------------------------------------------------------- -function ensureRegistrationEnabled (req: express.Request, res: express.Response, next: express.NextFunction) { - const registrationEnabled = CONFIG.SIGNUP.ENABLED - - if (registrationEnabled === true) { - return next() - } - - return res.status(400).send('User registration is not enabled.') -} - function createUser (req: express.Request, res: express.Response, next: express.NextFunction) { + const body: UserCreate = req.body + const user = db.User.build({ - username: req.body.username, - password: req.body.password, - email: req.body.email, + username: body.username, + password: body.password, + email: body.email, displayNSFW: false, role: USER_ROLES.USER }) - user.save().asCallback(function (err) { - if (err) return next(err) - - return res.type('json').status(204).end() - }) + user.save() + .then(() => res.type('json').status(204).end()) + .catch(err => next(err)) } function getUserInformation (req: express.Request, res: express.Response, next: express.NextFunction) { - db.User.loadByUsername(res.locals.oauth.token.user.username, function (err, user) { - if (err) return next(err) - - return res.json(user.toFormatedJSON()) - }) + db.User.loadByUsername(res.locals.oauth.token.user.username) + .then(user => res.json(user.toFormatedJSON())) + .catch(err => next(err)) } function getUserVideoRating (req: express.Request, res: express.Response, next: express.NextFunction) { - const videoId = '' + req.params.videoId + const videoId = +req.params.videoId const userId = +res.locals.oauth.token.User.id - db.UserVideoRate.load(userId, videoId, null, function (err, ratingObj) { - if (err) return next(err) - - const rating = ratingObj ? ratingObj.type : 'none' - - res.json({ - videoId, - rating + db.UserVideoRate.load(userId, videoId, null) + .then(ratingObj => { + const rating = ratingObj ? ratingObj.type : 'none' + const json: FormatedUserVideoRate = { + videoId, + rating + } + res.json(json) }) - }) + .catch(err => next(err)) } function listUsers (req: express.Request, res: express.Response, next: express.NextFunction) { - db.User.listForApi(req.query.start, req.query.count, req.query.sort, function (err, usersList, usersTotal) { - if (err) return next(err) - - res.json(getFormatedObjects(usersList, usersTotal)) - }) + db.User.listForApi(req.query.start, req.query.count, req.query.sort) + .then(resultList => { + res.json(getFormatedObjects(resultList.data, resultList.total)) + }) + .catch(err => next(err)) } function removeUser (req: express.Request, res: express.Response, next: express.NextFunction) { - waterfall([ - function loadUser (callback) { - db.User.loadById(req.params.id, callback) - }, - - function deleteUser (user, callback) { - user.destroy().asCallback(callback) - } - ], function andFinally (err) { - if (err) { - logger.error('Errors when removed the user.', { error: err }) + db.User.loadById(req.params.id) + .then(user => user.destroy()) + .then(() => res.sendStatus(204)) + .catch(err => { + logger.error('Errors when removed the user.', err) return next(err) - } - - return res.sendStatus(204) - }) + }) } function updateUser (req: express.Request, res: express.Response, next: express.NextFunction) { - db.User.loadByUsername(res.locals.oauth.token.user.username, function (err, user) { - if (err) return next(err) + const body: UserUpdate = req.body - if (req.body.password) user.password = req.body.password - if (req.body.displayNSFW !== undefined) user.displayNSFW = req.body.displayNSFW + db.User.loadByUsername(res.locals.oauth.token.user.username) + .then(user => { + if (body.password) user.password = body.password + if (body.displayNSFW !== undefined) user.displayNSFW = body.displayNSFW - user.save().asCallback(function (err) { - if (err) return next(err) - - return res.sendStatus(204) + return user.save() }) - }) + .then(() => res.sendStatus(204)) + .catch(err => next(err)) } function success (req: express.Request, res: express.Response, next: express.NextFunction) {