diff --git a/app/sbin/ODOO_19/restore b/app/sbin/ODOO_19/restore index f4b74da..d1ec1c0 100755 --- a/app/sbin/ODOO_19/restore +++ b/app/sbin/ODOO_19/restore @@ -65,6 +65,20 @@ doas docker exec "$UUID" rm -rf /root/.local/share/Odoo/filestore if ! doas docker exec "$UUID" odoo db --db_host beedb -w "$ODOO_DB_PASSWORD" -r "$UUID" load "$UUID" $FILENAME -f; then echo "ERROR: odoo db load failed - putting the old filestore back" + + +# Restrict database access to its UUID owner +PGPASSWORD="$POSTGRES_ADMIN_PASSWORD" psql \ + -h "$POSTGRES_HOST" -U "$POSTGRES_ADMIN_USER" \ + -p "$POSTGRES_PORT" -d postgres \ + -v ON_ERROR_STOP=1 \ + -c "REVOKE CONNECT, TEMPORARY ON DATABASE \"$UUID\" FROM PUBLIC; + GRANT CONNECT ON DATABASE \"$UUID\" TO \"$UUID\"; + ALTER DATABASE \"$UUID\" OWNER TO \"$UUID\"; + ALTER ROLE \"$UUID\" NOCREATEDB;" + + + doas docker exec "$UUID" sh -c "[ -d $OLD_FS ] && rm -rf /home/odoo/.local/share/Odoo/filestore && mv $OLD_FS /home/odoo/.local/share/Odoo/filestore; true" PGPASSWORD="$POSTGRES_ADMIN_PASSWORD" psql \ -h "$POSTGRES_HOST" -U "$POSTGRES_ADMIN_USER" -p "$POSTGRES_PORT" -d postgres \