From 9a5e70fa84c2dfb4fb7a2b32cd4e6653faeba08f Mon Sep 17 00:00:00 2001 From: Semyon Knyazev Date: Fri, 13 Dec 2024 20:37:55 +0400 Subject: [PATCH] Add middle name to contact and user creation dialogs Middle name will be shown and will be included in DN if "Show middle name when creating" option is set and vise versa. --- .../create_dialogs/create_contact_dialog.cpp | 12 ++++++- .../create_dialogs/create_contact_dialog.ui | 28 ++++++++++----- .../create_dialogs/create_user_dialog.cpp | 12 ++++++- src/admc/create_dialogs/create_user_dialog.ui | 36 ++++++++++++------- 4 files changed, 64 insertions(+), 24 deletions(-) diff --git a/src/admc/create_dialogs/create_contact_dialog.cpp b/src/admc/create_dialogs/create_contact_dialog.cpp index adcfed1f..588cef22 100644 --- a/src/admc/create_dialogs/create_contact_dialog.cpp +++ b/src/admc/create_dialogs/create_contact_dialog.cpp @@ -34,16 +34,26 @@ CreateContactDialog::CreateContactDialog(const QString &parent_dn, QWidget *pare setAttribute(Qt::WA_DeleteOnClose); + bool show_middle_name = false; + const QVariant show_middle_name_variant = settings_get_variant(SETTING_show_middle_name_when_creating); + if (!show_middle_name_variant.isNull()) { + show_middle_name = show_middle_name_variant.toBool(); + } + ui->middle_name_edit->setVisible(show_middle_name); + ui->middle_name_label->setVisible(show_middle_name); + auto first_name_edit = new StringEdit(ui->first_name_edit, ATTRIBUTE_FIRST_NAME, this); auto last_name_edit = new StringEdit(ui->last_name_edit, ATTRIBUTE_LAST_NAME, this); auto initials_edit = new StringEdit(ui->initials_edit, ATTRIBUTE_INITIALS, this); auto display_name_edit = new StringEdit(ui->display_name_edit, ATTRIBUTE_DISPLAY_NAME, this); + auto middle_name_edit = new StringEdit(ui->middle_name_edit, ATTRIBUTE_MIDDLE_NAME, this); const QList edit_list = { first_name_edit, last_name_edit, initials_edit, display_name_edit, + middle_name_edit, }; const QList required_list = { @@ -53,7 +63,7 @@ CreateContactDialog::CreateContactDialog(const QString &parent_dn, QWidget *pare ui->display_name_edit, }; - setup_full_name_autofill(ui->first_name_edit, ui->last_name_edit, ui->full_name_edit); + setup_full_name_autofill(ui->first_name_edit, ui->last_name_edit, ui->middle_name_edit, ui->full_name_edit); helper = new CreateObjectHelper(ui->full_name_edit, ui->button_box, edit_list, required_list, CLASS_CONTACT, parent_dn, this); diff --git a/src/admc/create_dialogs/create_contact_dialog.ui b/src/admc/create_dialogs/create_contact_dialog.ui index 55fe54a2..9b07ddd0 100644 --- a/src/admc/create_dialogs/create_contact_dialog.ui +++ b/src/admc/create_dialogs/create_contact_dialog.ui @@ -7,7 +7,7 @@ 0 0 400 - 198 + 250 @@ -23,28 +23,28 @@ - + Last name: - + Initials: - + Full name: - + Display name: @@ -54,18 +54,28 @@ - + - + - + - + + + + + + + + Middle name: + + + diff --git a/src/admc/create_dialogs/create_user_dialog.cpp b/src/admc/create_dialogs/create_user_dialog.cpp index 67f41316..893a7a96 100644 --- a/src/admc/create_dialogs/create_user_dialog.cpp +++ b/src/admc/create_dialogs/create_user_dialog.cpp @@ -38,11 +38,20 @@ CreateUserDialog::CreateUserDialog(AdInterface &ad, const QString &parent_dn, co setAttribute(Qt::WA_DeleteOnClose); + bool show_middle_name = false; + const QVariant show_middle_name_variant = settings_get_variant(SETTING_show_middle_name_when_creating); + if (!show_middle_name_variant.isNull()) { + show_middle_name = show_middle_name_variant.toBool(); + } + ui->middle_name_edit->setVisible(show_middle_name); + ui->middle_name_label->setVisible(show_middle_name); + auto first_name_edit = new StringEdit(ui->first_name_edit, ATTRIBUTE_FIRST_NAME, this); auto last_name_edit = new StringEdit(ui->last_name_edit, ATTRIBUTE_LAST_NAME, this); auto initials_edit = new StringEdit(ui->initials_edit, ATTRIBUTE_INITIALS, this); auto sam_name_edit = new SamNameEdit(ui->sam_name_edit, ui->sam_name_domain_edit, this); auto password_edit = new PasswordEdit(ui->password_main_edit, ui->password_confirm_edit, ui->show_password_check, this); + auto middle_name_edit = new StringEdit(ui->middle_name_edit, ATTRIBUTE_MIDDLE_NAME, this); auto upn_edit = new UpnEdit(ui->upn_prefix_edit, ui->upn_suffix_edit, this); upn_edit->init_suffixes(ad); @@ -65,7 +74,7 @@ CreateUserDialog::CreateUserDialog(AdInterface &ad, const QString &parent_dn, co account_option_setup_conflicts(check_map); - setup_full_name_autofill(ui->first_name_edit, ui->last_name_edit, ui->name_edit); + setup_full_name_autofill(ui->first_name_edit, ui->last_name_edit, ui->middle_name_edit, ui->name_edit); setup_lineedit_autofill(ui->upn_prefix_edit, ui->sam_name_edit); @@ -85,6 +94,7 @@ CreateUserDialog::CreateUserDialog(AdInterface &ad, const QString &parent_dn, co sam_name_edit, password_edit, upn_edit, + middle_name_edit, }; out.append(option_edit_list); diff --git a/src/admc/create_dialogs/create_user_dialog.ui b/src/admc/create_dialogs/create_user_dialog.ui index c451513e..2d961f0f 100644 --- a/src/admc/create_dialogs/create_user_dialog.ui +++ b/src/admc/create_dialogs/create_user_dialog.ui @@ -36,69 +36,69 @@ - + Full name: - + - + Initials: - + - + Logon name: - + Logon name (pre-Windows 2000): - + Password: - + QLineEdit::Password - + Confirm password: - + QLineEdit::Password - + @@ -108,7 +108,7 @@ - + @@ -122,13 +122,23 @@ - + Show password + + + + + + + Middle Name: + + +