From 6173a7338135c87321be909482ff356d32977de6 Mon Sep 17 00:00:00 2001 From: guillaume Date: Tue, 24 Jul 2018 18:09:30 +0200 Subject: enable/disable api with env var --- Dockerfile | 2 +- docker-compose.yml | 1 + models/users.js | 13 ++++++++++++- snap-src/bin/config | 6 +++++- snap-src/bin/wekan-help | 4 ++++ 5 files changed, 23 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6d68867d..4268e472 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ FROM debian:buster-slim -MAINTAINER wekan +LABEL maintainer="wekan" # Declare Arguments ARG NODE_VERSION diff --git a/docker-compose.yml b/docker-compose.yml index eb82c3aa..b2e12629 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -37,6 +37,7 @@ services: environment: - MONGO_URL=mongodb://wekandb:27017/wekan - ROOT_URL=http://localhost + - WITH_API=false depends_on: - wekandb diff --git a/models/users.js b/models/users.js index 9d859664..9b070c43 100644 --- a/models/users.js +++ b/models/users.js @@ -622,9 +622,20 @@ if (Meteor.isServer) { }); } - // USERS REST API if (Meteor.isServer) { + // Middleware which checks that API is enabled. + JsonRoutes.Middleware.use(function (req, res, next) { + const api = req.url.search('api'); + if (api === 1 && process.env.WITH_API === 'true' || api === -1){ + return next(); + } + else { + res.writeHead(301, {Location: '/'}); + return res.end(); + } + }); + JsonRoutes.add('GET', '/api/user', function(req, res) { try { Authentication.checkLoggedIn(req.userId); diff --git a/snap-src/bin/config b/snap-src/bin/config index 813c3d3f..9feada7b 100755 --- a/snap-src/bin/config +++ b/snap-src/bin/config @@ -3,7 +3,7 @@ # All supported keys are defined here together with descriptions and default values # list of supported keys -keys="MONGODB_BIND_UNIX_SOCKET MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT" +keys="MONGODB_BIND_UNIX_SOCKET MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API" # default values DESCRIPTION_MONGODB_BIND_UNIX_SOCKET="mongodb binding unix socket:\n"\ @@ -47,3 +47,7 @@ KEY_CADDY_ENABLED="caddy-enabled" DESCRIPTION_CADDY_BIND_PORT="Port on which caddy will expect proxy, value set here will be set in $SNAP_COMMON/Caddyfile" DEFAULT_CADDY_BIND_PORT="3001" KEY_CADDY_BIND_PORT="caddy-bind-port" + +DESCRIPTION_WITH_API="Enable/disable the api of wekan" +DEFAULT_WITH_API="false" +KEY_WITH_API="with-api" diff --git a/snap-src/bin/wekan-help b/snap-src/bin/wekan-help index ee565500..5c3f9b31 100755 --- a/snap-src/bin/wekan-help +++ b/snap-src/bin/wekan-help @@ -28,6 +28,10 @@ echo -e "\t\t-connect mongodb-plug with slot from snap providing mongodb" echo -e "\t\t-disable mongodb in $SNAP_NAME by calling: $ snap set $SNAP_NAME set disable-mongodb='true'" echo -e "\t\t-set mongodb-bind-unix-socket to point to serving mongodb. Use relative path inside shared directory, e.g run/mongodb-27017.sock" echo -e "\n" +echo -e "To enable the API of wekan:" +echo -e "\t$ snap set $SNAP_NAME WITH_API='true'" +echo -e "\t-Disable the API:" +echo -e "\t$ snap set $SNAP_NAME WITH_API='false'" # parse config file for supported settings keys echo -e "wekan supports settings keys" echo -e "values can be changed by calling\n$ snap set $SNAP_NAME =''" -- cgit v1.2.3-1-g7c22