From 8b4b4bb0271f9f5ca64b2c76e81c939a3069415c Mon Sep 17 00:00:00 2001 From: Manuel Dobusch Date: Wed, 2 Mar 2016 18:50:20 +0100 Subject: [PATCH] ui: Prevent network message handling without valid licence Message by the ide com. controller are now caught by the licence checker to prevent them from causing trouble when waiting for the licence. bug id = 45 --- bin/test/data/log/test_log.txt | 181 +++++++++++++++++- src/app/LicenseChecker.h | 34 ++++ .../controller/IDECommunicationController.cpp | 16 ++ .../controller/IDECommunicationController.h | 5 + 4 files changed, 235 insertions(+), 1 deletion(-) diff --git a/bin/test/data/log/test_log.txt b/bin/test/data/log/test_log.txt index 3ef756d5..5a5ba0f6 100644 --- a/bin/test/data/log/test_log.txt +++ b/bin/test/data/log/test_log.txt @@ -1,22 +1,189 @@ +ConfigManager.cpp WARNING: value path/to/nowhere is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:1:20 +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:1:20 +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:1:11 +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:1:13 CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:7:15 +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:5:20 +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:48 CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:7:20 +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:3:20 +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. Token.cpp ERROR: Location Id was not referenced by this Token. Node.cpp WARNING: Cannot change NodeType after it was already set from namespace to class Edge.cpp ERROR: Nodes are not plain copies. @@ -29,7 +196,6 @@ Edge.cpp ERROR: Nodes are not plain copies. INFO: send TestMessage2 INFO: handle TestMessage2 INFO: send TestMessage - INFO: handle TestMessage INFO: send TestMessage2 INFO: handle TestMessage2 INFO: send TestMessage @@ -65,7 +231,20 @@ Edge.cpp ERROR: Nodes are not plain copies. NetworkProtocolHelper.cpp ERROR: Failed to parse message, invalid type token NetworkProtocolHelper.cpp ERROR: Failed to parse setActiveToken message, invalid token count Settings.cpp WARNING: File for Settings not found: data/SettingsTestSuite/wrong_settings.xml +ConfigManager.cpp WARNING: value Bool is not present in config. +ConfigManager.cpp WARNING: value Int is not present in config. +ConfigManager.cpp WARNING: value Float is not present in config. +ConfigManager.cpp WARNING: value String is not present in config. Settings.cpp WARNING: File for Settings not found: data/SettingsTestSuite/wrong_settings.xml +ConfigManager.cpp WARNING: value Bool is not present in config. +ConfigManager.cpp WARNING: value Int is not present in config. +ConfigManager.cpp WARNING: value Float is not present in config. +ConfigManager.cpp WARNING: value String is not present in config. +ConfigManager.cpp WARNING: value Bool is not present in config. +ConfigManager.cpp WARNING: value Int is not present in config. +ConfigManager.cpp WARNING: value Float is not present in config. +ConfigManager.cpp WARNING: value String is not present in config. +ConfigManager.cpp WARNING: value NewBool is not present in config. INFO: file: file.cpp < 0:0 0:0> TextAccess.cpp ERROR: Could not open file file.cpp INFO: typedef: type diff --git a/src/app/LicenseChecker.h b/src/app/LicenseChecker.h index 0b215500..8ea1ba51 100644 --- a/src/app/LicenseChecker.h +++ b/src/app/LicenseChecker.h @@ -2,8 +2,10 @@ #define LICENSE_CHECKER_H #include "utility/messaging/MessageListener.h" +#include "utility/messaging/type/MessageActivateTokenLocations.h" #include "utility/messaging/type/MessageEnteredLicense.h" #include "utility/messaging/type/MessageLoadProject.h" +#include "utility/messaging/type/MessageProjectNew.h" #include "utility/messaging/type/MessageStatus.h" #include "License.h" @@ -15,6 +17,8 @@ class LicenseChecker : public MessageListener , public MessageListener + , public MessageListener + , public MessageListener { public: LicenseChecker() @@ -59,6 +63,36 @@ private: } } + void handleMessage(MessageProjectNew* message) + { + if (!checkLicenseString()) + { + m_resendMessage = std::make_shared(*message); + message->cancel(); + + if (!m_forcedLicenseEntering) + { + m_app->showLicenseScreen(); + m_forcedLicenseEntering = true; + } + } + } + + void handleMessage(MessageActivateTokenLocations* message) + { + if (!checkLicenseString()) + { + m_resendMessage = std::make_shared(*message); + message->cancel(); + + if (!m_forcedLicenseEntering) + { + m_app->showLicenseScreen(); + m_forcedLicenseEntering = true; + } + } + } + inline bool checkLicenseString() { MessageStatus("preparing...", false, true).dispatch(); diff --git a/src/lib/component/controller/IDECommunicationController.cpp b/src/lib/component/controller/IDECommunicationController.cpp index d3895c8f..5a2a3160 100644 --- a/src/lib/component/controller/IDECommunicationController.cpp +++ b/src/lib/component/controller/IDECommunicationController.cpp @@ -15,6 +15,7 @@ IDECommunicationController::IDECommunicationController(StorageAccess* storageAccess) : m_storageAccess(storageAccess) + , m_enabled(true) { } @@ -24,6 +25,11 @@ IDECommunicationController::~IDECommunicationController() void IDECommunicationController::handleIncomingMessage(const std::string& message) { + if (m_enabled == false) + { + return; + } + NetworkProtocolHelper::MESSAGE_TYPE type = NetworkProtocolHelper::getMessageType(message); if (type == NetworkProtocolHelper::MESSAGE_TYPE::UNKNOWN) @@ -40,6 +46,16 @@ void IDECommunicationController::handleIncomingMessage(const std::string& messag } } +bool IDECommunicationController::getEnabled() const +{ + return m_enabled; +} + +void IDECommunicationController::setEnabled(const bool enabled) +{ + m_enabled = enabled; +} + void IDECommunicationController::handleSetActiveTokenMessage(const NetworkProtocolHelper::SetActiveTokenMessage& message) { if (message.valid) diff --git a/src/lib/component/controller/IDECommunicationController.h b/src/lib/component/controller/IDECommunicationController.h index da2af8ce..07b8033a 100644 --- a/src/lib/component/controller/IDECommunicationController.h +++ b/src/lib/component/controller/IDECommunicationController.h @@ -22,6 +22,9 @@ public: void handleIncomingMessage(const std::string& message); + bool getEnabled() const; + void setEnabled(const bool enabled); + private: void handleSetActiveTokenMessage(const NetworkProtocolHelper::SetActiveTokenMessage& message); void handleCreateProjectMessage(const NetworkProtocolHelper::CreateProjectMessage& message); @@ -30,6 +33,8 @@ private: virtual void sendMessage(const std::string& message) const = 0; StorageAccess* m_storageAccess; + + bool m_enabled; }; #endif // IDE_COMMUNICATION_CONTROLLER_H \ No newline at end of file