Save serverHasValidsubcription in the account.
authorCamila Ayres <hello@camilasan.com>
Thu, 17 Oct 2024 16:40:06 +0000 (18:40 +0200)
committerCamila Ayres <hello@camilasan.com>
Thu, 31 Oct 2024 12:06:03 +0000 (13:06 +0100)
Signed-off-by: Camila Ayres <hello@camilasan.com>
src/gui/accountmanager.cpp
src/libsync/account.cpp
src/libsync/account.h

index f934e1cdbbd07faf28cad90bcc3b815891db15f4..95baf7a2121ce52e6654943e87a8aef395e2fcd3 100644 (file)
@@ -338,7 +338,7 @@ void AccountManager::saveAccountHelper(Account *acc, QSettings &settings, bool s
     settings.setValue(QLatin1String(serverVersionC), acc->_serverVersion);
     settings.setValue(QLatin1String(serverColorC), acc->_serverColor);
     settings.setValue(QLatin1String(serverTextColorC), acc->_serverTextColor);
-    settings.setValue(QLatin1String(serverHasValidSubscriptionC), acc->capabilities().serverHasValidSubscription());
+    settings.setValue(QLatin1String(serverHasValidSubscriptionC), acc->serverHasValidSubscription());
 
     if (!acc->_skipE2eeMetadataChecksumValidation) {
         settings.remove(QLatin1String(skipE2eeMetadataChecksumValidationC));
index cb4cc5166db120a961913fe5ba8b4e5a41fab264..9394e672cced1030a08e25cc47cb298745659616 100644 (file)
@@ -1076,13 +1076,28 @@ void Account::setAskUserForMnemonic(const bool ask)
     emit askUserForMnemonicChanged();
 }
 
+bool Account::serverHasValidSubscription() const
+{
+    return _serverHasValidSubscription;
+}
+
+void Account::setServerHasValidSubscription(bool valid)
+{
+    if (_serverHasValidSubscription != valid) {
+        _serverHasValidSubscription = valid;
+    }
+}
+
 void Account::updateServerSubcription()
 {
     ConfigFile currentConfig;
-    if (const auto serverHasValidSubscription = _capabilities.serverHasValidSubscription();
-        serverHasValidSubscription != currentConfig.serverHasValidSubscription() && !serverHasValidSubscription) {
-        currentConfig.setServerHasValidSubscription(serverHasValidSubscription);
+    const auto capabilityValidSubscription = _capabilities.serverHasValidSubscription();
+    const auto configValidSubscription = currentConfig.serverHasValidSubscription();
+    if (capabilityValidSubscription != configValidSubscription && !configValidSubscription) {
+        currentConfig.setServerHasValidSubscription(capabilityValidSubscription);
     }
+
+    setServerHasValidSubscription(capabilityValidSubscription);
 }
 
 void Account::updateDesktopEnterpriseChannel()
index 92a132ef6c48d1a874540e6049720bc8bba9acb4..6333164add153a20d79493b02ed7451276646d89 100644 (file)
@@ -409,6 +409,9 @@ public:
     [[nodiscard]] unsigned int downloadLimit() const;
     void setDownloadLimit(unsigned int kbytes);
 
+    [[nodiscard]] bool serverHasValidSubscription() const;
+    void setServerHasValidSubscription(bool valid);
+
 public slots:
     /// Used when forgetting credentials
     void clearQNAMCache();
@@ -553,6 +556,8 @@ private:
     unsigned int _uploadLimit = 0;
     unsigned int _downloadLimit = 0;
 
+    bool _serverHasValidSubscription = false;
+
     /* IMPORTANT - remove later - FIXME MS@2019-12-07 -->
      * TODO: For "Log out" & "Remove account": Remove client CA certs and KEY!
      *