20#ifndef ORES_QT_TENANT_ONBOARDING_WIZARD_HPP
21#define ORES_QT_TENANT_ONBOARDING_WIZARD_HPP
28#include <QRadioButton>
29#include <QProgressBar>
32#include "ores.logging/make_logger.hpp"
33#include "ores.qt/ClientManager.hpp"
57 inline static std::string_view logger_name =
58 "ores.qt.tenant_onboarding_wizard";
60 [[nodiscard]]
static auto& lg() {
62 static auto instance = make_logger(logger_name);
76 QWidget* parent =
nullptr);
80 ClientManager* clientManager()
const {
return clientManager_; }
82 bool isGleifMode()
const {
return gleifMode_; }
83 void setGleifMode(
bool gleif) { gleifMode_ = gleif; }
85 QString tenantCode()
const {
return tenantCode_; }
86 void setTenantCode(
const QString& code) { tenantCode_ = code; }
88 QString tenantName()
const {
return tenantName_; }
89 void setTenantName(
const QString& name) { tenantName_ = name; }
91 QString tenantType()
const {
return tenantType_; }
92 void setTenantType(
const QString& type) { tenantType_ = type; }
94 QString tenantHostname()
const {
return tenantHostname_; }
95 void setTenantHostname(
const QString& hostname) { tenantHostname_ = hostname; }
97 QString tenantDescription()
const {
return tenantDescription_; }
98 void setTenantDescription(
const QString& desc) { tenantDescription_ = desc; }
100 QString rootLei()
const {
return rootLei_; }
101 void setRootLei(
const QString& lei) { rootLei_ = lei; }
103 QString rootLeiName()
const {
return rootLeiName_; }
104 void setRootLeiName(
const QString& name) { rootLeiName_ = name; }
106 QString adminUsername()
const {
return adminUsername_; }
107 void setAdminUsername(
const QString& u) { adminUsername_ = u; }
109 QString adminPassword()
const {
return adminPassword_; }
110 void setAdminPassword(
const QString& p) { adminPassword_ = p; }
112 QString adminEmail()
const {
return adminEmail_; }
113 void setAdminEmail(
const QString& e) { adminEmail_ = e; }
116 void onboardingCompleted(
const QString& tenantName);
122 bool gleifMode_ =
false;
125 QString tenantType_ = QStringLiteral(
"evaluation");
126 QString tenantHostname_;
127 QString tenantDescription_;
129 QString rootLeiName_;
130 QString adminUsername_;
131 QString adminPassword_;
152 void initializePage()
override;
153 bool validatePage()
override;
154 int nextId()
const override;
157 void onModeChanged();
163 QRadioButton* blankRadio_;
164 QRadioButton* gleifRadio_;
166 QLabel* selectedEntityLabel_;
167 bool leiLoaded_ =
false;
181 void initializePage()
override;
182 bool validatePage()
override;
183 int nextId()
const override;
186 void onCodeChanged(
const QString& text);
190 void updateHostname();
193 QLineEdit* codeEdit_;
194 QLineEdit* nameEdit_;
195 QComboBox* typeCombo_;
196 QLineEdit* hostnameEdit_;
197 QLineEdit* descriptionEdit_;
198 QLabel* validationLabel_;
199 bool hostnameManuallyEdited_ =
false;
210 void initializePage()
override;
211 bool validatePage()
override;
212 int nextId()
const override;
215 void onShowPasswordToggled(
bool checked);
221 QLineEdit* usernameEdit_;
222 QLineEdit* emailEdit_;
223 QLineEdit* passwordEdit_;
224 QLineEdit* confirmPasswordEdit_;
225 QCheckBox* showPasswordCheck_;
226 QLabel* validationLabel_;
238 inline static std::string_view logger_name =
239 "ores.qt.apply_onboarding_page";
241 [[nodiscard]]
static auto& lg() {
243 static auto instance = make_logger(logger_name);
249 void initializePage()
override;
250 bool isComplete()
const override;
253 void startOnboarding();
254 void appendLog(
const QString& message);
257 QLabel* statusLabel_;
258 QProgressBar* progressBar_;
259 QTextEdit* logOutput_;
260 bool onboardingComplete_ =
false;
261 bool onboardingSuccess_ =
false;
Implements logging infrastructure for ORE Studio.
Definition boost_severity.hpp:28
Qt-based graphical user interface for ORE Studio.
Definition AboutDialog.hpp:29
Manages the lifecycle of the NATS client and login state.
Definition ClientManager.hpp:109
Reusable widget for searching and selecting an LEI entity.
Definition LeiEntityPicker.hpp:42
Wizard for onboarding a new tenant.
Definition TenantOnboardingWizard.hpp:53
First page: choose Blank or GLEIF mode and select LEI entity.
Definition TenantOnboardingWizard.hpp:147
Second page: configure tenant details.
Definition TenantOnboardingWizard.hpp:176
Third page: create the initial admin account for the new tenant.
Definition TenantOnboardingWizard.hpp:205
Fourth page: provisions the tenant and creates admin account.
Definition TenantOnboardingWizard.hpp:234