6#include <QtCore/QThread>
9#include <iauth/ILogin.h>
10#include <iqt/ISettingsProvider.h>
11#include <iqtgui/TDesignerGuiCompBase.h>
12#include <iqtgui/TRestorableGuiWrap.h>
13#include <ilog/IMessageConsumer.h>
16#include <imtbase/TModelUpdateBinder.h>
17#include <imtcom/IConnectionStatusProvider.h>
18#include <imtauth/ISuperuserController.h>
19#include <imtauth/ISuperuserProvider.h>
20#include <GeneratedFiles/imtauthgui/ui_CRemoteStandardLoginGuiComp.h>
27class CRemoteStandardLoginGuiComp:
public iqtgui::TRestorableGuiWrap<
28 iqtgui::TDesignerGuiCompBase<Ui::CRemoteStandardLoginGuiComp>>
34 US_USER_PASSWORD_LOGIN,
36 US_NO_CONNECTION_TO_SERVER,
40 typedef iqtgui::TRestorableGuiWrap<
41 iqtgui::TDesignerGuiCompBase<Ui::CRemoteStandardLoginGuiComp>> BaseClass;
43 I_BEGIN_COMPONENT(CRemoteStandardLoginGuiComp);
44 I_REGISTER_SUBELEMENT(LoginLog);
45 I_REGISTER_SUBELEMENT_INTERFACE(LoginLog, ilog::IMessageConsumer, ExtractLoginLog);
46 I_ASSIGN(m_loginCompPtr,
"Login",
"Login",
false,
"Login");
47 I_ASSIGN(m_superuserProviderCompPtr,
"SuperuserProvider",
"Superuser provider",
false,
"SuperuserProvider");
48 I_ASSIGN(m_settingsProviderCompPtr,
"SettingsProvider",
"Application settings provider",
false,
"SettingsProvider");
49 I_ASSIGN(m_superuserControllerCompPtr,
"SuperuserController",
"Superuser controller",
false,
"SuperuserController");
50 I_ASSIGN(m_loginStatusProviderCompPtr,
"ConnectionStatusProvider",
"Component for providing server connection status",
false,
"ConnectionStatusProvider");
51 I_ASSIGN(m_pumaLoginStatusProviderCompPtr,
"PumaConnectionStatusProvider",
"Component for providing puma server connection status",
true,
"PumaConnectionStatusProvider");
54 CRemoteStandardLoginGuiComp();
55 virtual bool eventFilter(QObject* watched, QEvent* event)
override;
59 virtual void OnComponentCreated()
override;
60 virtual void OnComponentDestroyed()
override;
63 virtual void OnGuiShown()
override;
64 virtual void OnGuiHidden()
override;
65 virtual void OnGuiCreated()
override;
66 virtual void OnGuiDestroyed()
override;
69 virtual void OnRestoreSettings(
const QSettings& settings)
override;
70 virtual void OnSaveSettings(QSettings& settings)
const override;
73 void on_LoginButton_clicked();
74 void on_SetPasswordButton_clicked();
75 void on_RefreshButton_clicked();
76 void on_PasswordEdit_textEdited(
const QString& text);
77 void on_SuPasswordEdit_textEdited(
const QString& text);
78 void on_SuConfirmPasswordEdit_textEdited(
const QString& text);
79 void OnSetSuPasswordFinished();
82 void OnLoginUpdate(
const istd::IChangeable::ChangeSet& changeSet,
const iauth::ILogin* objectPtr);
85 void UpdateLoginButtonsState();
86 void CheckMatchingPassword();
89 bool TryRestoreSessionWithRefreshToken(
const QString& userName,
const QByteArray& refreshToken);
90 void SaveRefreshTokenIfRememberMe(QSettings& settings)
const;
91 void ClearRefreshTokenIfNeeded(QSettings& settings)
const;
94 class LoginLog:
public ilog::IMessageConsumer
97 LoginLog(CRemoteStandardLoginGuiComp& parent);
100 virtual bool IsMessageSupported(
int messageCategory = -1,
int messageId = -1,
const istd::IInformationProvider* messagePtr = NULL)
const override;
101 virtual void AddMessage(
const MessagePtr& messagePtr)
override;
104 CRemoteStandardLoginGuiComp& m_parent;
107 template <
typename InterfaceType>
108 static InterfaceType* ExtractLoginLog(CRemoteStandardLoginGuiComp& parent)
110 return &parent.m_loginLog;
113 class SetSuPasswordThread:
public QThread
123 SetSuPasswordThread(CRemoteStandardLoginGuiComp& parent);
125 void Start(
const QByteArray& suPassword);
126 ThreadState GetState();
130 virtual void run()
override;
133 CRemoteStandardLoginGuiComp& m_parent;
134 QByteArray m_suPassword;
139 I_REF(imtauth::ISuperuserProvider, m_superuserProviderCompPtr);
140 I_REF(imtauth::ISuperuserController, m_superuserControllerCompPtr);
141 I_REF(iauth::ILogin, m_loginCompPtr);
142 I_REF(iqt::ISettingsProvider, m_settingsProviderCompPtr);
151 SetSuPasswordThread m_setSuPasswordThread;
Interface for monitoring network connection status with observable state changes.
Authentication UI Components Module.