X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Futils.ts;h=af5be0c69dcbc40b845c22bcd82b7c90d122d956;hb=6599f096d5a26f2cc9624359d92cc501ec189586;hp=1dcbd31c4c8ad1a7f463502a30ed1ca883277aeb;hpb=69818c9394366b954b6ba3bd697bd9d2b09f2a16;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/utils.ts b/server/helpers/utils.ts index 1dcbd31c4..af5be0c69 100644 --- a/server/helpers/utils.ts +++ b/server/helpers/utils.ts @@ -1,57 +1,57 @@ import * as express from 'express' +import * as Promise from 'bluebird' -import { pseudoRandomBytes } from 'crypto' -import { join } from 'path' - -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')) } -function isTestInstance () { - return process.env.NODE_ENV === 'test' +interface FormatableToJSON { + toFormattedJSON () } -function getFormatedObjects (objects: any[], objectsTotal: number) { - const formatedObjects = [] +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 root () { - // We are in /dist/helpers/utils.js - return join(__dirname, '..', '..', '..') +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, - isTestInstance, - getFormatedObjects, - root + getFormattedObjects, + isSignupAllowed }