#!/bin/bash # # Copyright (C) 2019 OX Software GmbH # # This file is part of OX Automation. # # OX Automation is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # OX Automation is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with OX Automation. If not, see <http://www.gnu.org/licenses/>. # # # Authors: # Benedikt Kroening <benedikt.kroening@open-xchange.com> # set -e SCRIPT_DIR="$( cd "$(dirname "$0")" ; pwd -P)" # sourcing some commonly used functions and executing basic checks source ${SCRIPT_DIR}/../lib/common.bash source ${SCRIPT_DIR}/../lib/setup.bash checkRootPrivileges detectDistribution ## Help text show_usage() { echo -n " $0 [OPTIONS] --enable --disable -f <id> | --filestore <id> --restart " } ### reading config from command line; overriding defaults POSITIONAL=() while [[ $# -gt 0 ]] do key="$1" case $key in -h|--help) show_usage exit 0 shift ;; --debug) echo "WARNING: Debug flag set (--debug)" set -x shift ;; --enable) GDPR_ENABLE=true shift ;; --disable) GDPR_ENABLE=false shift ;; -f|--filestore) OX_FILESTORE_ID="$2" shift shift ;; --restart) RESTART_OX=true shift ;; *) # unknown option POSITIONAL+=("$1") # save it in an array for later shift ;; esac done set -- "${POSITIONAL[@]}" # restore positional parameters if [[ "${GDPR_ENABLE}" = true ]]; then echo "Enabling GDPR data export feature with 24/7 enabled export functionality ... " installPackagesRetry "open-xchange-gdpr-dataexport" if [ -z ${OX_FILESTORE_ID} ]; then echo "No filestore id was specified as parameter, trying to obtain it from config directory ..." OX_FILESTORE_ID=$(cat /opt/open-xchange/etc/20-registerfilestore.out | awk '{ print $2 }') fi echo "OX_FILESTORE_ID="$OX_FILESTORE_ID if [[ -f /usr/share/doc/open-xchange-gdpr-dataexport/properties/dataexport.properties.gz ]]; then echo "Unzipping default dataexport.properties file ..." /bin/gunzip -v /usr/share/doc/open-xchange-gdpr-dataexport/properties/dataexport.properties.gz fi if [[ -f /usr/share/doc/open-xchange-gdpr-dataexport/properties/dataexport.properties ]]; then echo "Copying over default dataexport.properties file ..." /bin/cp -vf /usr/share/doc/open-xchange-gdpr-dataexport/properties/dataexport.properties /opt/open-xchange/etc/dataexport.properties fi # Actual configuration of gdpr feature setOXProperty com.openexchange.gdpr.dataexport.fileStorageId "$OX_FILESTORE_ID" /opt/open-xchange/etc/dataexport.properties setOXProperty com.openexchange.gdpr.dataexport.enabled true /opt/open-xchange/etc/dataexport.properties setOXProperty com.openexchange.gdpr.dataexport.active true /opt/open-xchange/etc/dataexport.properties setOXProperty com.openexchange.gdpr.dataexport.schedule "Mon-Sun 0-24" /opt/open-xchange/etc/dataexport.properties echo "Reloading ox config ..." /opt/open-xchange/sbin/reloadconfiguration # Configuration of no_reply settings (may move to own feature script) elif [[ "${GDPR_ENABLE}" = false ]]; then if [[ -f /opt/open-xchange/etc/dataexport.properties ]]; then echo "Disabling GDPR data export features" setOXProperty com.openexchange.gdpr.dataexport.enabled false /opt/open-xchange/etc/dataexport.properties setOXProperty com.openexchange.gdpr.dataexport.active false /opt/open-xchange/etc/dataexport.properties fi fi echo "The OX service needs to be restarted for the changes to take effect!" if [[ "${RESTART_OX}" = true ]]; then restartService open-xchange fi