]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/helpers/signup.ts
Instance homepage support (#4007)
[github/Chocobozzz/PeerTube.git] / server / helpers / signup.ts
index 5eb56b3cf6c2779e065b90edbc89aef45a360721..8fa81e601d7a712e314dd036a2151648ee8f8353 100644 (file)
@@ -1,27 +1,29 @@
-import { UserModel } from '../models/account/user'
+import { UserModel } from '../models/user/user'
 import * as ipaddr from 'ipaddr.js'
 import { CONFIG } from '../initializers/config'
 
 const isCidr = require('is-cidr')
 
-async function isSignupAllowed () {
+async function isSignupAllowed (): Promise<{ allowed: boolean, errorMessage?: string }> {
   if (CONFIG.SIGNUP.ENABLED === false) {
-    return false
+    return { allowed: false }
   }
 
   // No limit and signup is enabled
   if (CONFIG.SIGNUP.LIMIT === -1) {
-    return true
+    return { allowed: true }
   }
 
   const totalUsers = await UserModel.countTotal()
 
-  return totalUsers < CONFIG.SIGNUP.LIMIT
+  return { allowed: totalUsers < CONFIG.SIGNUP.LIMIT }
 }
 
 function isSignupAllowedForCurrentIP (ip: string) {
+  if (!ip) return false
+
   const addr = ipaddr.parse(ip)
-  let excludeList = [ 'blacklist' ]
+  const excludeList = [ 'blacklist' ]
   let matched = ''
 
   // if there is a valid, non-empty whitelist, we exclude all unknown adresses too