diff --git a/src/gui/src/ActivationDialog.cpp b/src/gui/src/ActivationDialog.cpp index 9033ad709..3e6d13942 100644 --- a/src/gui/src/ActivationDialog.cpp +++ b/src/gui/src/ActivationDialog.cpp @@ -43,16 +43,15 @@ ActivationDialog::~ActivationDialog() void ActivationDialog::reject() { - if (m_LicenseManager->activeEdition() == kUnregistered) { - CancelActivationDialog cancelActivationDialog(this); - if (QDialog::Accepted == cancelActivationDialog.exec()) { - m_LicenseManager->skipActivation(); - m_appConfig->activationHasRun(true); - } else { - return; - } - } - QDialog::reject(); + if (m_LicenseManager->activeEdition() == kUnregistered) { + CancelActivationDialog cancelActivationDialog(this); + if (QDialog::Accepted == cancelActivationDialog.exec()) { + m_LicenseManager->skipActivation(); + } else { + return; + } + } + QDialog::reject(); } void ActivationDialog::accept() diff --git a/src/gui/src/LicenseManager.cpp b/src/gui/src/LicenseManager.cpp index 1447b91bf..14fbbd53e 100644 --- a/src/gui/src/LicenseManager.cpp +++ b/src/gui/src/LicenseManager.cpp @@ -47,8 +47,8 @@ LicenseManager::setSerialKey(SerialKey serialKey, bool acceptExpired) emit serialKeyChanged(m_serialKey); emit showLicenseNotice(getLicenseNotice()); - if (m_serialKey.isExpired(currentTime)) { - emit LicenseExpired(); + if (m_serialKey.isValid()) { + emit InvalidLicense(); } if (m_serialKey.edition() != serialKey.edition()) { @@ -112,8 +112,8 @@ LicenseManager::refresh() m_AppConfig->clearSerialKey(); } } - if (m_serialKey.isExpired(::time(0))) { - emit LicenseExpired(); + if (m_serialKey.isValid()) { + emit InvalidLicense(); } } diff --git a/src/gui/src/LicenseManager.h b/src/gui/src/LicenseManager.h index 823354939..253de5424 100644 --- a/src/gui/src/LicenseManager.h +++ b/src/gui/src/LicenseManager.h @@ -50,7 +50,7 @@ private: signals: void serialKeyChanged (SerialKey) const; void editionChanged (Edition) const; - void LicenseExpired () const; + void InvalidLicense () const; void showLicenseNotice(const QString& notice) const; protected: diff --git a/src/gui/src/MainWindow.cpp b/src/gui/src/MainWindow.cpp index dee6eee77..e0800408f 100644 --- a/src/gui/src/MainWindow.cpp +++ b/src/gui/src/MainWindow.cpp @@ -174,8 +174,8 @@ MainWindow::MainWindow (AppConfig& appConfig, connect (m_LicenseManager, SIGNAL(showLicenseNotice(QString)), this, SLOT(showLicenseNotice(QString)), Qt::QueuedConnection); - connect (m_LicenseManager, SIGNAL(LicenseExpired()), - this, SLOT(LicenseExpired()), Qt::QueuedConnection); + connect (m_LicenseManager, SIGNAL(InvalidLicense()), + this, SLOT(InvalidLicense()), Qt::QueuedConnection); #endif connect (m_AppConfig, SIGNAL(sslToggled(bool)), @@ -613,8 +613,7 @@ void MainWindow::startSynergy() { #ifndef SYNERGY_ENTERPRISE SerialKey serialKey = m_LicenseManager->serialKey(); - time_t currentTime = ::time(0); - if (serialKey.isExpired(currentTime)) { + if (!serialKey.isValid()) { if (QDialog::Rejected == raiseActivationDialog()) { return; } @@ -1152,7 +1151,7 @@ void MainWindow::setEdition(Edition edition) } #ifndef SYNERGY_ENTERPRISE -void MainWindow::LicenseExpired() +void MainWindow::InvalidLicense() { stopSynergy(); m_AppConfig->activationHasRun(false); @@ -1379,12 +1378,11 @@ int MainWindow::raiseActivationDialog() void MainWindow::on_windowShown() { #ifndef SYNERGY_ENTERPRISE - time_t currentTime = ::time(0); - if (!m_AppConfig->activationHasRun() - && ((m_AppConfig->edition() == kUnregistered) || - (m_LicenseManager->serialKey().isExpired(currentTime)))) { - raiseActivationDialog(); - } + if (!m_AppConfig->activationHasRun()){ + if (!m_LicenseManager->serialKey().isValid()) { + raiseActivationDialog(); + } + } #endif } diff --git a/src/gui/src/MainWindow.h b/src/gui/src/MainWindow.h index 280ba22d4..c68dfb685 100644 --- a/src/gui/src/MainWindow.h +++ b/src/gui/src/MainWindow.h @@ -132,7 +132,7 @@ class MainWindow : public QMainWindow, public Ui::MainWindowBase public slots: void setEdition(Edition edition); #ifndef SYNERGY_ENTERPRISE - void LicenseExpired(); + void InvalidLicense(); void showLicenseNotice(const QString& message); #endif void appendLogRaw(const QString& text); diff --git a/src/lib/shared/SerialKey.cpp b/src/lib/shared/SerialKey.cpp index 08829ba01..92e9961c6 100644 --- a/src/lib/shared/SerialKey.cpp +++ b/src/lib/shared/SerialKey.cpp @@ -96,6 +96,19 @@ SerialKey::isTemporary() const return m_KeyType.isTemporary(); } +bool +SerialKey::isValid() const +{ + bool Valid = true; + + if (m_edition.getType() == kUnregistered || isExpired(::time(0))) + { + Valid = false; + } + + return Valid; +} + Edition SerialKey::edition() const { diff --git a/src/lib/shared/SerialKey.h b/src/lib/shared/SerialKey.h index abb16fca4..881509626 100644 --- a/src/lib/shared/SerialKey.h +++ b/src/lib/shared/SerialKey.h @@ -37,6 +37,7 @@ public: bool isExpired(time_t currentTime) const; bool isTrial() const; bool isTemporary() const; + bool isValid() const; time_t daysLeft(time_t currentTime) const; std::string email() const; Edition edition() const; diff --git a/src/test/unittests/shared/SerialKeyTests.cpp b/src/test/unittests/shared/SerialKeyTests.cpp index e2dcd005f..645d794af 100644 --- a/src/test/unittests/shared/SerialKeyTests.cpp +++ b/src/test/unittests/shared/SerialKeyTests.cpp @@ -70,7 +70,7 @@ TEST(SerialKeyTests, parse_validV2Serial_valid) bool r = serial.parse("{v2;trial;pro;Bob;1;email;company name;0;86400}"); EXPECT_EQ(true, r); EXPECT_EQ(kPro, serial.edition()); - EXPECT_FALSE(serial.isExpired(0)); + EXPECT_FALSE(serial.isExpired(0)); EXPECT_EQ(true, serial.daysLeft(0)); EXPECT_EQ(true, serial.isExpiring(1)); EXPECT_EQ(true, serial.isTrial()); @@ -207,4 +207,23 @@ TEST(SerialKeyTests, toStringV1BasicSerialKey) EXPECT_EQ(Expected, serial.toString()); } +TEST(SerialKeyTests, IsValidKey_false) +{ + //{v1;basic;Bob;1;email;company name;0;0} + SerialKey serial(kUnregistered); + EXPECT_EQ(false, serial.isValid()); +} + +TEST(SerialKeyTests, IsValidKey_true) +{ + SerialKey serial(kBasic); + EXPECT_EQ(true, serial.isValid()); +} + +TEST(SerialKeyTests, IsValidExpiredKey_false) +{ + SerialKey serial("7B76323B737562736372697074696F6E3B62617369633B426F623B313B656D61696C3B636F6D70616E79206E616D653B303B38363430307D"); + EXPECT_EQ(false, serial.isValid()); +} +