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 };