File indexing completed on 2024-06-09 04:58:52
0001 /* 0002 SPDX-FileCopyrightText: 2021-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QWidget> 0010 0011 #include "users/userscreatejob.h" 0012 0013 #include "libruqolawidgets_private_export.h" 0014 class QLineEdit; 0015 class QCheckBox; 0016 class User; 0017 class KPasswordLineEdit; 0018 class RolesComboBox; 0019 class QPlainTextEdit; 0020 class RocketChatAccount; 0021 class RoleInfo; 0022 class LIBRUQOLAWIDGETS_TESTS_EXPORT AdministratorAddUserWidget : public QWidget 0023 { 0024 Q_OBJECT 0025 public: 0026 enum UserType { 0027 Unknown = 0, 0028 Create, 0029 Edit, 0030 }; 0031 0032 explicit AdministratorAddUserWidget(RocketChatAccount *account, QWidget *parent = nullptr); 0033 ~AdministratorAddUserWidget() override; 0034 0035 [[nodiscard]] RocketChatRestApi::CreateUpdateUserInfo createInfo() const; 0036 0037 void setUser(const User &user); 0038 0039 [[nodiscard]] RocketChatRestApi::UpdateUserInfo updateInfo() const; 0040 void setRoleInfo(const QVector<RoleInfo> &info); 0041 Q_SIGNALS: 0042 void updateButtonOk(bool b); 0043 0044 private: 0045 LIBRUQOLAWIDGETS_NO_EXPORT void slotChangeSetRandomPassword(bool checked); 0046 LIBRUQOLAWIDGETS_NO_EXPORT void slotUpdateOkButton(); 0047 UserType mUserType = UserType::Create; 0048 QLineEdit *const mName; 0049 QLineEdit *const mUserName; 0050 QLineEdit *const mStatusText; 0051 QLineEdit *const mEmail; 0052 QLineEdit *const mNickName; 0053 KPasswordLineEdit *const mPasswordLineEdit; 0054 0055 QCheckBox *const mJoinDefaultChannels; 0056 QCheckBox *const mSendWelcomeEmails; 0057 QCheckBox *const mRequirePasswordChange; 0058 QCheckBox *const mSetRandowPassword; 0059 QCheckBox *const mEmailVerified; 0060 RolesComboBox *const mRolesComboBox; 0061 QPlainTextEdit *const mBioPlainTextEdit; 0062 RocketChatAccount *const mRocketChatAccount; 0063 };