Browse Source

[PHP-FPM] Add API_KEY_READ_ONLY generation

andryyy 5 years ago
parent
commit
4efc35abde
1 changed files with 11 additions and 7 deletions
  1. 11 7
      data/Dockerfiles/phpfpm/docker-entrypoint.sh

+ 11 - 7
data/Dockerfiles/phpfpm/docker-entrypoint.sh

@@ -114,15 +114,11 @@ done
 fi
 fi
 
 
 # Set API options if env vars are not empty
 # Set API options if env vars are not empty
-if [[ ${API_ALLOW_FROM} != "invalid" ]] && \
-  [[ ${API_KEY} != "invalid" ]] && \
-  [[ ! -z ${API_KEY} ]] && \
-  [[ ! -z ${API_ALLOW_FROM} ]]; then
+if [[ ${API_ALLOW_FROM} != "invalid" ]] && [[ ! -z ${API_ALLOW_FROM} ]]; then
   IFS=',' read -r -a API_ALLOW_FROM_ARR <<< "${API_ALLOW_FROM}"
   IFS=',' read -r -a API_ALLOW_FROM_ARR <<< "${API_ALLOW_FROM}"
   declare -a VALIDATED_API_ALLOW_FROM_ARR
   declare -a VALIDATED_API_ALLOW_FROM_ARR
   REGEX_IP6='^([0-9a-fA-F]{0,4}:){1,7}[0-9a-fA-F]{0,4}$'
   REGEX_IP6='^([0-9a-fA-F]{0,4}:){1,7}[0-9a-fA-F]{0,4}$'
   REGEX_IP4='^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$'
   REGEX_IP4='^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$'
-
   for IP in "${API_ALLOW_FROM_ARR[@]}"; do
   for IP in "${API_ALLOW_FROM_ARR[@]}"; do
     if [[ ${IP} =~ ${REGEX_IP6} ]] || [[ ${IP} =~ ${REGEX_IP4} ]]; then
     if [[ ${IP} =~ ${REGEX_IP6} ]] || [[ ${IP} =~ ${REGEX_IP4} ]]; then
       VALIDATED_API_ALLOW_FROM_ARR+=("${IP}")
       VALIDATED_API_ALLOW_FROM_ARR+=("${IP}")
@@ -130,10 +126,18 @@ if [[ ${API_ALLOW_FROM} != "invalid" ]] && \
   done
   done
   VALIDATED_IPS=$(array_by_comma ${VALIDATED_API_ALLOW_FROM_ARR[*]})
   VALIDATED_IPS=$(array_by_comma ${VALIDATED_API_ALLOW_FROM_ARR[*]})
   if [[ ! -z ${VALIDATED_IPS} ]]; then
   if [[ ! -z ${VALIDATED_IPS} ]]; then
-    mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
-DELETE FROM api;
+    if [[ ${API_KEY} != "invalid" ]] && [[ ! -z ${API_KEY} ]]; then
+      mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
+DELETE FROM api WHERE access = 'rw';
 INSERT INTO api (api_key, active, allow_from, access) VALUES ("${API_KEY}", "1", "${VALIDATED_IPS}", "rw");
 INSERT INTO api (api_key, active, allow_from, access) VALUES ("${API_KEY}", "1", "${VALIDATED_IPS}", "rw");
 EOF
 EOF
+    fi
+    if [[ ${API_KEY_READ_ONLY} != "invalid" ]] && [[ ! -z ${API_KEY_READ_ONLY} ]]; then
+      mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
+DELETE FROM api WHERE access = 'ro';
+INSERT INTO api (api_key, active, allow_from, access) VALUES ("${API_KEY_READ_ONLY}", "1", "${VALIDATED_IPS}", "ro");
+EOF
+    fi
   fi
   fi
 fi
 fi