6#include <QtCore/QThread>
9#include <iauth/ILogin.h>
10#include <iauth/IRightsProvider.h>
11#include <iqt/ISettingsProvider.h>
12#include <iqtgui/TDesignerGuiCompBase.h>
13#include <iqtgui/TRestorableGuiWrap.h>
14#include <ilog/IMessageConsumer.h>
15#include <iqtgui/TDesignerGuiObserverCompBase.h>
16#include <imtcom/IConnectionStatusProvider.h>
19#include <imtauth/ISuperuserController.h>
20#include <imtauth/ISuperuserProvider.h>
21#include <imtbase/TModelUpdateBinder.h>
22#include <GeneratedFiles/imtauthgui/ui_CStandardLoginGuiComp.h>
29class CStandardLoginGuiComp:
public iqtgui::TRestorableGuiWrap<
30 iqtgui::TDesignerGuiCompBase<Ui::CStandardLoginGuiComp>>
37 US_USER_PASSWORD_LOGIN,
39 US_NO_CONNECTION_TO_SERVER,
43 typedef iqtgui::TRestorableGuiWrap<
44 iqtgui::TDesignerGuiCompBase<Ui::CStandardLoginGuiComp>> BaseClass;
46 I_BEGIN_COMPONENT(CStandardLoginGuiComp);
47 I_REGISTER_SUBELEMENT(LoginLog);
48 I_REGISTER_SUBELEMENT_INTERFACE(LoginLog, ilog::IMessageConsumer, ExtractLoginLog);
49 I_ASSIGN(m_loginCompPtr,
"Login",
"Login",
false,
"Login");
50 I_ASSIGN(m_superuserProviderCompPtr,
"SuperuserProvider",
"Superuser provider",
false,
"SuperuserProvider");
51 I_ASSIGN(m_superuserControllerCompPtr,
"SuperuserController",
"Superuser controller",
false,
"SuperuserController");
52 I_ASSIGN(m_connectionStatusProviderCompPtr,
"ConnectionStatusProvider",
"Connection status provider",
false,
"ConnectionStatusProvider");
55 CStandardLoginGuiComp();
58 virtual bool eventFilter(QObject* watched, QEvent* event)
override;
61 virtual void OnComponentCreated()
override;
62 virtual void OnComponentDestroyed()
override;
65 virtual void OnGuiShown()
override;
66 virtual void OnGuiHidden()
override;
67 virtual void OnGuiCreated()
override;
68 virtual void OnGuiDestroyed()
override;
71 virtual void OnRestoreSettings(
const QSettings& settings)
override;
72 virtual void OnSaveSettings(QSettings& settings)
const override;
75 void on_LoginButton_clicked();
76 void on_SetPasswordButton_clicked();
77 void on_PasswordEdit_textEdited(
const QString& text);
78 void on_SuPasswordEdit_textEdited(
const QString& text);
79 void on_SuConfirmPasswordEdit_textEdited(
const QString& text);
80 void OnSetSuPasswordFinished();
83 void OnLoginUpdate(
const istd::IChangeable::ChangeSet& changeSet,
const iauth::ILogin* objectPtr);
85 void UpdateLoginButtonsState();
86 void CheckMatchingPassword();
87 void ShowLoadingPage();
90 bool TryRestoreSessionWithRefreshToken(
const QString& userName,
const QByteArray& refreshToken);
91 void SaveRefreshTokenIfRememberMe(QSettings& settings)
const;
92 void ClearRefreshTokenIfNeeded(QSettings& settings)
const;
95 class LoginLog:
public ilog::IMessageConsumer
98 LoginLog(CStandardLoginGuiComp& parent);
101 virtual bool IsMessageSupported(
int messageCategory = -1,
int messageId = -1,
const istd::IInformationProvider* messagePtr = NULL)
const override;
102 virtual void AddMessage(
const MessagePtr& messagePtr)
override;
105 CStandardLoginGuiComp& m_parent;
108 template <
typename InterfaceType>
109 static InterfaceType* ExtractLoginLog(CStandardLoginGuiComp& parent)
111 return &parent.m_loginLog;
114 class SetSuPasswordThread:
public QThread
124 SetSuPasswordThread(CStandardLoginGuiComp& parent);
126 void Start(
const QByteArray& suPassword);
127 ThreadState GetState();
131 virtual void run()
override;
134 CStandardLoginGuiComp& m_parent;
135 QByteArray m_suPassword;
140 I_REF(imtauth::ISuperuserProvider, m_superuserProviderCompPtr);
141 I_REF(imtauth::ISuperuserController, m_superuserControllerCompPtr);
142 I_REF(iauth::ILogin, m_loginCompPtr);
149 SetSuPasswordThread m_setSuPasswordThread;
151 QMovie* m_loadingMovie =
nullptr;
Interface for monitoring network connection status with observable state changes.
Authentication UI Components Module.