Browse Source

[Config] Add API_KEY_READ_ONLY

andryyy 5 years ago
parent
commit
5e5642148c
3 changed files with 14 additions and 3 deletions
  1. 1 0
      docker-compose.yml
  2. 6 3
      generate_config.sh
  3. 7 0
      update.sh

+ 1 - 0
docker-compose.yml

@@ -143,6 +143,7 @@ services:
         - SMTPS_PORT=${SMTPS_PORT:-465}
         - SMTPS_PORT=${SMTPS_PORT:-465}
         - SMTP_PORT=${SMTP_PORT:-25}
         - SMTP_PORT=${SMTP_PORT:-25}
         - API_KEY=${API_KEY:-invalid}
         - API_KEY=${API_KEY:-invalid}
+        - API_KEY_READ_ONLY=${API_KEY_READ_ONLY:-invalid}
         - API_ALLOW_FROM=${API_ALLOW_FROM:-invalid}
         - API_ALLOW_FROM=${API_ALLOW_FROM:-invalid}
         - COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-mailcow-dockerized}
         - COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-mailcow-dockerized}
         - SKIP_SOLR=${SKIP_SOLR:-y}
         - SKIP_SOLR=${SKIP_SOLR:-y}

+ 6 - 3
generate_config.sh

@@ -275,12 +275,15 @@ IPV6_NETWORK=fd4d:6169:6c63:6f77::/64
 
 
 #SNAT6_TO_SOURCE=
 #SNAT6_TO_SOURCE=
 
 
-# Create or override API key for web ui
+# Create or override an API key for the web UI
 # You _must_ define API_ALLOW_FROM, which is a comma separated list of IPs
 # You _must_ define API_ALLOW_FROM, which is a comma separated list of IPs
-# The API key defined here has read-write access
-# API_KEY allowed chars: a-z, A-Z, 0-9, -
+# An API key defined as API_KEY has read-write access
+# An API key defined as API_KEY_READ_ONLY has read-only access
+# Allowed chars for API_KEY and API_KEY_READ_ONLY: a-z, A-Z, 0-9, -
+# You can define API_KEY and/or API_KEY_READ_ONLY
 
 
 #API_KEY=
 #API_KEY=
+#API_KEY_READ_ONLY=
 #API_ALLOW_FROM=172.22.1.1,127.0.0.1
 #API_ALLOW_FROM=172.22.1.1,127.0.0.1
 
 
 # mail_home is ~/Maildir
 # mail_home is ~/Maildir

+ 7 - 0
update.sh

@@ -185,6 +185,7 @@ CONFIG_ARRAY=(
   "COMPOSE_PROJECT_NAME"
   "COMPOSE_PROJECT_NAME"
   "SQL_PORT"
   "SQL_PORT"
   "API_KEY"
   "API_KEY"
+  "API_KEY_READ_ONLY"
   "API_ALLOW_FROM"
   "API_ALLOW_FROM"
   "MAILDIR_GC_TIME"
   "MAILDIR_GC_TIME"
   "MAILDIR_SUB"
   "MAILDIR_SUB"
@@ -250,6 +251,12 @@ for option in ${CONFIG_ARRAY[@]}; do
       echo '# Create or override API key for web UI' >> mailcow.conf
       echo '# Create or override API key for web UI' >> mailcow.conf
       echo "#API_KEY=" >> mailcow.conf
       echo "#API_KEY=" >> mailcow.conf
     fi
     fi
+  elif [[ ${option} == "API_KEY_READ_ONLY" ]]; then
+    if ! grep -q ${option} mailcow.conf; then
+      echo "Adding new option \"${option}\" to mailcow.conf"
+      echo '# Create or override read-only API key for web UI' >> mailcow.conf
+      echo "#API_KEY_READ_ONLY=" >> mailcow.conf
+    fi
   elif [[ ${option} == "API_ALLOW_FROM" ]]; then
   elif [[ ${option} == "API_ALLOW_FROM" ]]; then
     if ! grep -q ${option} mailcow.conf; then
     if ! grep -q ${option} mailcow.conf; then
       echo "Adding new option \"${option}\" to mailcow.conf"
       echo "Adding new option \"${option}\" to mailcow.conf"