X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fapi%2Fusers%2Findex.ts;h=2e03587ce2e33e1e9d223b3286af0d98cb3c1d5d;hb=57cfff78858b2360d9e038e2a504b761cb51da47;hp=a049e23e4182db18f60d1ad12b22965bc2bdb973;hpb=6dd9de95dfa39bd5c1faed00d1dbd52cd112bae0;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/users/index.ts b/server/controllers/api/users/index.ts index a049e23e4..2e03587ce 100644 --- a/server/controllers/api/users/index.ts +++ b/server/controllers/api/users/index.ts @@ -3,7 +3,7 @@ import * as RateLimit from 'express-rate-limit' import { UserCreate, UserRight, UserRole, UserUpdate } from '../../../../shared' import { logger } from '../../../helpers/logger' import { getFormattedObjects } from '../../../helpers/utils' -import { RATES_LIMIT, sequelizeTypescript, WEBSERVER } from '../../../initializers' +import { RATES_LIMIT, WEBSERVER } from '../../../initializers/constants' import { Emailer } from '../../../lib/emailer' import { Redis } from '../../../lib/redis' import { createUserAccountAndChannelAndPlaylist } from '../../../lib/user' @@ -44,6 +44,9 @@ import { myNotificationsRouter } from './my-notifications' import { Notifier } from '../../../lib/notifier' import { mySubscriptionsRouter } from './my-subscriptions' import { CONFIG } from '../../../initializers/config' +import { sequelizeTypescript } from '../../../initializers/database' +import { UserAdminFlag } from '../../../../shared/models/users/user-flag.model' +import { UserRegister } from '../../../../shared/models/users/user-register.model' const auditLogger = auditLoggerFactory('users') @@ -174,7 +177,8 @@ async function createUser (req: express.Request, res: express.Response) { autoPlayVideo: true, role: body.role, videoQuota: body.videoQuota, - videoQuotaDaily: body.videoQuotaDaily + videoQuotaDaily: body.videoQuotaDaily, + adminFlags: body.adminFlags || UserAdminFlag.NONE }) const { user, account } = await createUserAccountAndChannelAndPlaylist(userToCreate) @@ -186,15 +190,14 @@ async function createUser (req: express.Request, res: express.Response) { user: { id: user.id, account: { - id: account.id, - uuid: account.Actor.uuid + id: account.id } } }).end() } async function registerUser (req: express.Request, res: express.Response) { - const body: UserCreate = req.body + const body: UserRegister = req.body const userToCreate = new UserModel({ username: body.username, @@ -208,7 +211,7 @@ async function registerUser (req: express.Request, res: express.Response) { emailVerified: CONFIG.SIGNUP.REQUIRES_EMAIL_VERIFICATION ? false : null }) - const { user } = await createUserAccountAndChannelAndPlaylist(userToCreate) + const { user } = await createUserAccountAndChannelAndPlaylist(userToCreate, body.channel) auditLogger.create(body.username, new UserAuditView(user.toFormattedJSON())) logger.info('User %s with its channel and account registered.', body.username) @@ -240,7 +243,7 @@ async function blockUser (req: express.Request, res: express.Response) { } function getUser (req: express.Request, res: express.Response) { - return res.json(res.locals.user.toFormattedJSON()) + return res.json(res.locals.user.toFormattedJSON({ withAdminFlags: true })) } async function autocompleteUsers (req: express.Request, res: express.Response) { @@ -252,7 +255,7 @@ async function autocompleteUsers (req: express.Request, res: express.Response) { async function listUsers (req: express.Request, res: express.Response) { const resultList = await UserModel.listForApi(req.query.start, req.query.count, req.query.sort, req.query.search) - return res.json(getFormattedObjects(resultList.data, resultList.total)) + return res.json(getFormattedObjects(resultList.data, resultList.total, { withAdminFlags: true })) } async function removeUser (req: express.Request, res: express.Response) { @@ -277,6 +280,7 @@ async function updateUser (req: express.Request, res: express.Response) { if (body.videoQuota !== undefined) userToUpdate.videoQuota = body.videoQuota if (body.videoQuotaDaily !== undefined) userToUpdate.videoQuotaDaily = body.videoQuotaDaily if (body.role !== undefined) userToUpdate.role = body.role + if (body.adminFlags !== undefined) userToUpdate.adminFlags = body.adminFlags const user = await userToUpdate.save()