diff --git a/setup/start/custom.yml b/setup/start/custom.yml index 1f13ac464..e7827f7ed 100644 --- a/setup/start/custom.yml +++ b/setup/start/custom.yml @@ -14,6 +14,14 @@ # email: support@cloudron.io # remoteSupport: true # +# ticketFormBody: | +# Use this form to open support tickets. You can also write directly to [support@cloudron.io](mailto:support@cloudron.io). +# * [Knowledge Base & App Docs](https://cloudron.io/documentation/apps/?support_view) +# * [Custom App Packaging & API](https://cloudron.io/developer/packaging/?support_view) +# * [Forum](https://forum.cloudron.io/) +# +# submitTickets: true +# # alerts: # email: support@cloudron.io # notifyCloudronAdmins: false diff --git a/src/custom.js b/src/custom.js index db6532379..a04eb8fe2 100644 --- a/src/custom.js +++ b/src/custom.js @@ -1,6 +1,7 @@ 'use strict'; -let debug = require('debug')('box:features'), +let config = require('./config.js'), + debug = require('debug')('box:features'), lodash = require('lodash'), paths = require('./paths.js'), safe = require('safetydance'), @@ -23,7 +24,13 @@ const DEFAULT_SPEC = { }, support: { email: 'support@cloudron.io', - remoteSupport: true + remoteSupport: true, + ticketFormBody: + 'Use this form to open support tickets. You can also write directly to [support@cloudron.io](mailto:support@cloudron.io).\n\n' + + `* [Knowledge Base & App Docs](${config.webServerOrigin()}/documentation/apps/?support_view)\n` + + `* [Custom App Packaging & API](${config.webServerOrigin()}/developer/packaging/?support_view)\n` + + '* [Forum](https://forum.cloudron.io/)\n\n', + submitTickets: true }, alerts: { email: '', diff --git a/src/routes/support.js b/src/routes/support.js index 8a299356f..0f12653df 100644 --- a/src/routes/support.js +++ b/src/routes/support.js @@ -18,6 +18,8 @@ var appstore = require('../appstore.js'), function createTicket(req, res, next) { assert.strictEqual(typeof req.user, 'object'); + if (!custom.spec().support.submitTickets) return next(new HttpError(405, 'feature disabled by admin')); + const VALID_TYPES = [ 'feedback', 'ticket', 'app_missing', 'app_error', 'upgrade_request' ]; if (typeof req.body.type !== 'string' || !req.body.type) return next(new HttpError(400, 'type must be string'));