]>
git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/controllers/api/users.js
3 const express
= require('express')
4 const waterfall
= require('async/waterfall')
6 const constants
= require('../../initializers/constants')
7 const db
= require('../../initializers/database')
8 const logger
= require('../../helpers/logger')
9 const utils
= require('../../helpers/utils')
10 const middlewares
= require('../../middlewares')
11 const admin
= middlewares
.admin
12 const oAuth
= middlewares
.oauth
13 const pagination
= middlewares
.pagination
14 const sort
= middlewares
.sort
15 const validatorsPagination
= middlewares
.validators
.pagination
16 const validatorsSort
= middlewares
.validators
.sort
17 const validatorsUsers
= middlewares
.validators
.users
19 const router
= express
.Router()
21 router
.get('/me', oAuth
.authenticate
, getUserInformation
)
24 validatorsPagination
.pagination
,
25 validatorsSort
.usersSort
,
27 pagination
.setPagination
,
34 validatorsUsers
.usersAdd
,
40 validatorsUsers
.usersUpdate
,
47 validatorsUsers
.usersRemove
,
51 router
.post('/token', oAuth
.token
, success
)
52 // TODO: Once https://github.com/oauthjs/node-oauth2-server/pull/289 is merged, implement revoke token route
54 // ---------------------------------------------------------------------------
56 module
.exports
= router
58 // ---------------------------------------------------------------------------
60 function createUser (req
, res
, next
) {
61 const user
= db
.User
.build({
62 username: req
.body
.username
,
63 password: req
.body
.password
,
64 role: constants
.USER_ROLES
.USER
67 user
.save().asCallback(function (err
, createdUser
) {
68 if (err
) return next(err
)
70 return res
.type('json').status(204).end()
74 function getUserInformation (req
, res
, next
) {
75 db
.User
.loadByUsername(res
.locals
.oauth
.token
.user
.username
, function (err
, user
) {
76 if (err
) return next(err
)
78 return res
.json(user
.toFormatedJSON())
82 function listUsers (req
, res
, next
) {
83 db
.User
.listForApi(req
.query
.start
, req
.query
.count
, req
.query
.sort
, function (err
, usersList
, usersTotal
) {
84 if (err
) return next(err
)
86 res
.json(utils
.getFormatedObjects(usersList
, usersTotal
))
90 function removeUser (req
, res
, next
) {
92 function loadUser (callback
) {
93 db
.User
.loadById(req
.params
.id
, callback
)
96 function deleteUser (user
, callback
) {
97 user
.destroy().asCallback(callback
)
99 ], function andFinally (err
) {
101 logger
.error('Errors when removed the user.', { error: err
})
105 return res
.sendStatus(204)
109 function updateUser (req
, res
, next
) {
110 db
.User
.loadByUsername(res
.locals
.oauth
.token
.user
.username
, function (err
, user
) {
111 if (err
) return next(err
)
113 user
.password
= req
.body
.password
114 user
.save().asCallback(function (err
) {
115 if (err
) return next(err
)
117 return res
.sendStatus(204)
122 function success (req
, res
, next
) {