From c8ffa33e3581b0f80a0b8e8b2bdb19cdae156d97 Mon Sep 17 00:00:00 2001
From: ibizaman <ibizapeanut@gmail.com>
Date: Tue, 6 Feb 2024 20:42:52 -0800
Subject: [PATCH] fix some deprecated options

---
 modules/services/nextcloud-server.nix | 18 +++++++++++++-----
 test/vm/nextcloud.nix                 |  1 +
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/modules/services/nextcloud-server.nix b/modules/services/nextcloud-server.nix
index 8e4beb2..f3c7e65 100644
--- a/modules/services/nextcloud-server.nix
+++ b/modules/services/nextcloud-server.nix
@@ -103,6 +103,14 @@ in
       '';
     };
 
+    defaultPhoneRegion = lib.mkOption {
+      type = lib.types.str;
+      description = ''
+        Two letters region defining default region.
+      '';
+      example = "US";
+    };
+
     postgresSettings = lib.mkOption {
       type = lib.types.nullOr (lib.types.attrsOf lib.types.str);
       default = null;
@@ -478,9 +486,6 @@ in
           dbtype = "pgsql";
           adminuser = cfg.adminUser;
           adminpassFile = toString cfg.adminPassFile;
-          # Not using dbpassFile as we're using socket authentication.
-          defaultPhoneRegion = "US";
-          trustedProxies = [ "127.0.0.1" ];
         };
         database.createLocally = true;
 
@@ -500,14 +505,17 @@ in
         extraAppsEnable = true;
         appstoreEnable = true;
 
-        extraOptions = let
+        settings = let
           protocol = if !(isNull cfg.ssl) then "https" else "http";
         in {
+          "default_phone_region" = cfg.defaultPhoneRegion;
+
           "overwrite.cli.url" = "${protocol}://${fqdn}";
           "overwritehost" = fqdnWithPort;
           # 'trusted_domains' needed otherwise we get this issue https://help.nextcloud.com/t/the-polling-url-does-not-start-with-https-despite-the-login-url-started-with-https/137576/2
           # TODO: could instead set extraTrustedDomains
           "trusted_domains" = [ fqdn ];
+          "trusted_proxies" = [ "127.0.0.1" ];
           # TODO: could instead set overwriteProtocol
           "overwriteprotocol" = protocol; # Needed if behind a reverse_proxy
           "overwritecondaddr" = ""; # We need to set it to empty otherwise overwriteprotocol does not work.
@@ -765,7 +773,7 @@ in
         secretFile = "${cfg.dataDir}/config/secretFile";
 
         # See all options at https://github.com/pulsejet/nextcloud-oidc-login
-        extraOptions = {
+        settings = {
           allow_user_to_change_display_name = false;
           lost_password_link = "disabled";
           oidc_login_provider_url = ssoFqdnWithPort;
diff --git a/test/vm/nextcloud.nix b/test/vm/nextcloud.nix
index 72477ec..7eee458 100644
--- a/test/vm/nextcloud.nix
+++ b/test/vm/nextcloud.nix
@@ -30,6 +30,7 @@ in
         subdomain = "n";
         dataDir = "/var/lib/nextcloud";
         tracing = null;
+        defaultPhoneRegion = "US";
 
         # This option is only needed because we do not access Nextcloud at the default port in the VM.
         externalFqdn = "n.example.com:8080";