Browse Source

feat: max 6 apps in demo mode

Nicolas Meienberger 1 year ago
parent
commit
b8be697e60
2 changed files with 8 additions and 1 deletions
  1. 2 1
      src/client/messages/en.json
  2. 6 0
      src/server/services/apps/apps.service.ts

+ 2 - 1
src/client/messages/en.json

@@ -33,7 +33,8 @@
       "domain-already-in-use": "Domain {domain} is already in use by app {id}",
       "could-not-get-latest-version": "Could not get latest version",
       "current-version-is-latest": "Current version is already up to date",
-      "major-version-update": "The major version has changed. Please update manually (instructions on GitHub)"
+      "major-version-update": "The major version has changed. Please update manually (instructions on GitHub)",
+      "demo-mode-limit": "Only 6 apps can be installed in the demo mode. Please uninstall an other app to install a new one."
     },
     "success": {}
   },

+ 6 - 0
src/server/services/apps/apps.service.ts

@@ -104,6 +104,12 @@ export class AppServiceClass {
     if (app) {
       await this.startApp(id);
     } else {
+      const apps = await this.queries.getApps();
+
+      if (apps.length >= 6 && getConfig().demoMode) {
+        throw new TranslatedError('server-messages.errors.demo-mode-limit');
+      }
+
       if (exposed && !domain) {
         throw new TranslatedError('server-messages.errors.domain-required-if-expose-app');
       }