#!/bin/bash

echo "[DOCKER SCRIPT SETUP] Enable user_ldap app"
n=1
until [ $n -ge 20 ]
do 
    r=$(occ app:enable user_ldap 2>&1)
    t=$?
    echo -n "."
    [[ $t == 0 ]] && break
    n=$(($n + 1))
    sleep 1
done
echo

if [ -f /var/lib/univention-appcenter/apps/owncloud/data/files/tobemigrated ]
then
  echo "[DOCKER SCRIPT SETUP]delete ldap config"
  occ ldap:delete-config '' 
fi

OWNCLOUD_PERMCONF_DIR="/var/lib/univention-appcenter/apps/owncloud/conf"
OWNCLOUD_LDAP_FILE="${OWNCLOUD_PERMCONF_DIR}/ldap"

eval "$(< ${OWNCLOUD_LDAP_FILE})"

if [[ "$(occ ldap:show-config)" == "" ]]
then
  occ ldap:create-empty-config >>/var/log/appcenter-install.log 2>&1
fi

occ ldap:set-config s01 ldapHost ${LDAP_MASTER} >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapPort ${LDAP_MASTER_PORT} >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapAgentName ${LDAP_HOSTDN} >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapAgentPassword $(< /etc/machine.secret) >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapBase ${owncloud_ldap_base} >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapLoginFilter $owncloud_ldap_loginFilter >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapUserFilter $owncloud_ldap_userFilter >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapGroupFilter $owncloud_ldap_groupFilter >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapQuotaAttribute $owncloud_ldap_user_quotaAttribute >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapExpertUsernameAttr $owncloud_ldap_internalNameAttribute >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapExpertUUIDUserAttr $owncloud_ldap_userUuid >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapExpertUUIDGroupAttr $owncloud_ldap_groupUuid >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapEmailAttribute $owncloud_ldap_emailAttribute >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapGroupMemberAssocAttr $owncloud_ldap_memberAssoc >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapAttributesForUserSearch $owncloud_ldap_search_users >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapAttributesForGroupSearch $owncloud_ldap_search_groups >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapBaseUsers $owncloud_ldap_base_users >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapBaseGroups $owncloud_ldap_base_groups >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 useMemberOfToDetectMembership 0 >>/var/log/appcenter-install.log 2>&1
occ ldap:set-config s01 ldapConfigurationActive 1 >>/var/log/appcenter-install.log 2>&1

cat << EOF >| /etc/cron.d/sync
*/10  *  *  *  * root /usr/local/bin/occ user:sync -m disable 'OCA\User_LDAP\User_Proxy'
EOF

/usr/local/bin/occ user:sync -m disable 'OCA\User_LDAP\User_Proxy' >>/var/log/appcenter-install.log 2>&1

echo "[DOCKER SCRIPT SETUP] setting collabora URL"
if [[ "$(occ config:app:get richdocuments wopi_url)" == "" ]]
then
     occ config:app:set richdocuments wopi_url --value https://"$docker_host_name" 
fi

echo "[DOCKER SCRIPT SETUP] collabora certificate check"
OWNCLOUD_PERM_DIR="/var/lib/univention-appcenter/apps/owncloud"
OWNCLOUD_DATA="${OWNCLOUD_PERM_DIR}/data"
OWNCLOUD_CONF="${OWNCLOUD_PERM_DIR}/conf"

collabora_cert=/etc/univention/ssl/ucsCA/CAcert.pem
owncloud_certs=/var/www/owncloud/resources/config/ca-bundle.crt

echo "[DOCKER SCRIPT SETUP] Is the collabora certificate is mounted correctly" 
if [ -f $collabora_cert ]
then
    echo "Yes.
    Was it updated?" 
    # Declaring the marker-string
    collab="This is a certificate for Collabora for ownCloud"
    if grep -Fq "$collab" "$owncloud_certs"
        then
            echo "Yes. 
            Certificate was already updated" 
        else
            echo "No. 
            Updating Certificate..." 
            echo "$collab" >> $owncloud_certs
            cat $collabora_cert >> $owncloud_certs
            echo "Certificate has been succesfully updated" 
    fi
else 
    echo "There is no Collabora Certificate"         
fi

echo "[DOCKER SCRIPT SETUP] configuring owncloud for onlyoffice use"
sed -i "s#);#  'onlyoffice' => array ('verify_peer_off' => TRUE),\n&#" $OWNCLOUD_CONF/config.php

exit 0