X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Futils.ts;h=af5be0c69dcbc40b845c22bcd82b7c90d122d956;hb=6599f096d5a26f2cc9624359d92cc501ec189586;hp=bbf135fa118838b0efe4ffcc99822dff380964b9;hpb=9e580054399e3d40b0cc366afc80ceb7426ad590;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/utils.ts b/server/helpers/utils.ts index bbf135fa1..af5be0c69 100644 --- a/server/helpers/utils.ts +++ b/server/helpers/utils.ts @@ -1,49 +1,57 @@ import * as express from 'express' +import * as Promise from 'bluebird' -import { pseudoRandomBytes } from 'crypto' - -import { logger } from './logger' +import { pseudoRandomBytesPromise } from './core-utils' +import { CONFIG, database as db } from '../initializers' +import { ResultList } from '../../shared' function badRequest (req: express.Request, res: express.Response, next: express.NextFunction) { res.type('json').status(400).end() } -function generateRandomString (size: number, callback: (err: Error, randomString?: string) => void) { - pseudoRandomBytes(size, function (err, raw) { - if (err) return callback(err) - - callback(null, raw.toString('hex')) - }) -} - -function createEmptyCallback () { - return function (err) { - if (err) logger.error('Error in empty callback.', { error: err }) - } +function generateRandomString (size: number) { + return pseudoRandomBytesPromise(size).then(raw => raw.toString('hex')) } interface FormatableToJSON { - toFormatedJSON () + toFormattedJSON () } -function getFormatedObjects (objects: T[], objectsTotal: number) { - const formatedObjects: U[] = [] +function getFormattedObjects (objects: T[], objectsTotal: number) { + const formattedObjects: U[] = [] - objects.forEach(function (object) { - formatedObjects.push(object.toFormatedJSON()) + objects.forEach(object => { + formattedObjects.push(object.toFormattedJSON()) }) - return { + const res: ResultList = { total: objectsTotal, - data: formatedObjects + data: formattedObjects + } + + return res +} + +function isSignupAllowed () { + if (CONFIG.SIGNUP.ENABLED === false) { + return Promise.resolve(false) } + + // No limit and signup is enabled + if (CONFIG.SIGNUP.LIMIT === -1) { + return Promise.resolve(true) + } + + return db.User.countTotal().then(totalUsers => { + return totalUsers < CONFIG.SIGNUP.LIMIT + }) } // --------------------------------------------------------------------------- export { badRequest, - createEmptyCallback, generateRandomString, - getFormatedObjects + getFormattedObjects, + isSignupAllowed }