diff --git a/locale/ubl-settings-system.pot b/locale/ubl-settings-system.pot
index 237fb55..2b6c3af 100644
--- a/locale/ubl-settings-system.pot
+++ b/locale/ubl-settings-system.pot
@@ -237,6 +237,12 @@ msgstr ""
msgid "Check"
msgstr ""
+msgid "OU, Organizational Unit:"
+msgstr ""
+
+msgid "The name of the OU in which we want to create the computer account in the domain. If the account already exists, it will be updated. Example: \"ubhosts\" or \"OU=UBL Servers,OU=KOM,DC=ad,DC=holding,DC=com\""
+msgstr ""
+
msgid "Domain connection"
msgstr ""
diff --git a/locale/ubl-settings-system_ru.po b/locale/ubl-settings-system_ru.po
index d3f0cf6..1befc8d 100644
--- a/locale/ubl-settings-system_ru.po
+++ b/locale/ubl-settings-system_ru.po
@@ -241,6 +241,12 @@ msgstr "Проверка"
msgid "Domain connection"
msgstr "Соединение домена"
+msgid "OU, Organizational Unit:"
+msgstr "Подразделение:"
+
+msgid "The name of the OU in which we want to create the computer account in the domain. If the account already exists, it will be updated. Example: \"ubhosts\" or \"OU=UBL Servers,OU=KOM,DC=ad,DC=holding,DC=com\""
+msgstr "Имя OU, в котором мы хотим создать учётную запись компьютера в домене. Если учётная запись уже существует, то она будет обновлена. Пример: \"ubhosts\" или \"OU=UBL Servers,OU=KOM,DC=ad,DC=holding,DC=com\""
+
msgid "Afrikaans, South Africa"
msgstr "Африканский, Южная Африка"
diff --git a/source/ubl-settings-system.c b/source/ubl-settings-system.c
index cdac32e..a5e036b 100644
--- a/source/ubl-settings-system.c
+++ b/source/ubl-settings-system.c
@@ -461,16 +461,18 @@ void on_domain_connect(GtkWidget *, dictionary *dict){
char *password = (char*)gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry));
char *kerberos = (char*)gtk_entry_get_text(GTK_ENTRY(window->KerberosServerEntry));
char *dns = (char*)gtk_entry_get_text(GTK_ENTRY(window->DNSEntry));
+ char *ou = (char*)gtk_entry_get_text(GTK_ENTRY(window->OuEntry));
char *client = NULL;
if (gtk_combo_box_get_active(GTK_COMBO_BOX(window->ClientCombo))){
client = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->ClientCombo));
}
char *final = yon_char_unite(!yon_char_is_empty(kerberos)?kerberos_addition_command(kerberos):"",!yon_char_is_empty(kerberos)?" ":"",!yon_char_is_empty(dns)?dns_addition_command(dns):"",!yon_char_is_empty(dns)?" ":"",!yon_char_is_empty(client)?client_addition_command(client):"",!yon_char_is_empty(client)?" ":"",NULL);
- yon_debug_output("%s\n",domain_connect_command(adress,login,password,final));
+ char *command = domain_connect_command(adress,login,password,final,ou);
+ yon_debug_output("%s\n",command);
domain_info_window *dialog = yon_information_window_new();
gtk_label_set_text(GTK_LABEL(dialog->HeadLabel),DOMAIN_CONNECTING_LABEL);
gtk_window_set_title(GTK_WINDOW(dialog->Window),DOMAIN_CONNECTING_LABEL);
- yon_terminal_integrated_start(dialog->ExecuteTerminal,domain_connect_command(adress,login,password,final));
+ yon_terminal_integrated_start(dialog->ExecuteTerminal,command);
dictionary *dc = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dc,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dc,"window",window->Window);
@@ -568,7 +570,9 @@ connection_window *yon_connection_window_new(){
window->SaveButton = yon_gtk_builder_get_widget(builder,"SaveButton");
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->CheckButton = yon_gtk_builder_get_widget(builder,"CheckButton");
+ window->OuEntry = yon_gtk_builder_get_widget(builder,"OuEntry");
window->list = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
+ yon_gtk_entry_block_symbols(GTK_ENTRY(window->OuEntry),"!\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~.");
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->StatusEntry),"clicked",G_CALLBACK(on_status_clicked),window);
g_signal_connect(G_OBJECT(window->CheckButton),"clicked",G_CALLBACK(yon_update_thread),window);
diff --git a/source/ubl-settings-system.h b/source/ubl-settings-system.h
index d4f91eb..9f09629 100644
--- a/source/ubl-settings-system.h
+++ b/source/ubl-settings-system.h
@@ -65,7 +65,7 @@
#define check_domain_access_command(targeet) yon_char_append("adcli info --domain ",target)
#define get_domain_info_command "ubdomain-client list "
#define domains_seek_command "ubdomain-client discover"
-#define domain_connect_command(target,user,password, addition) yon_char_unite("ubdomain-client join",!yon_char_is_empty(user)?" --user \"":"",!yon_char_is_empty(user)?user:"",!yon_char_is_empty(user)?"\"":"",!yon_char_is_empty(password)?" --password \"":"",!yon_char_is_empty(password)?password:"",!yon_char_is_empty(password)?"\"":""," --domain \"",target,"\"", addition,NULL)
+#define domain_connect_command(target,user,password, addition,ou) yon_char_unite("ubdomain-client join",!yon_char_is_empty(user)?" --user \"":"",!yon_char_is_empty(user)?user:"",!yon_char_is_empty(user)?"\"":"",!yon_char_is_empty(password)?" --password \"":"",!yon_char_is_empty(password)?password:"",!yon_char_is_empty(password)?"\"":""," --domain \"",target,"\"",!yon_char_is_empty(ou)?" --ou \"":"",!yon_char_is_empty(ou)?ou:"",!yon_char_is_empty(ou)?"\"":"", addition,NULL)
#define domain_disconnect_command(target,user,password) yon_char_unite("ubdomain-client leave",!yon_char_is_empty(user)?" --user \"":"",!yon_char_is_empty(user)?user:"",!yon_char_is_empty(user)?"\"":"",!yon_char_is_empty(password)?" --password \"":"",!yon_char_is_empty(password)?password:"",!yon_char_is_empty(password)?"\"":""," --domain \"",target,"\"",NULL)
#define kerberos_addition_command(target) yon_char_unite(" --domain_server \"",target,"\"",NULL)
#define dns_addition_command(target) yon_char_unite(" --dns \"",target,"\"",NULL)
@@ -167,6 +167,8 @@ typedef struct {
GtkWidget *StatusBox;
GtkWidget *HeadLabel;
+
+ GtkWidget *OuEntry;
GtkWidget *CancelButton;
GtkWidget *SaveButton;
diff --git a/source/ubl-strings.h b/source/ubl-strings.h
index 67a69c4..301174c 100644
--- a/source/ubl-strings.h
+++ b/source/ubl-strings.h
@@ -64,4 +64,6 @@
#define DOMAIN_DISCONNECTED_LABEL _("Disconnected from domain")
#define LOADING_LABEL _("Loading...")
-#define CHECK_CONNECTION_LABEL _("Check")
\ No newline at end of file
+#define CHECK_CONNECTION_LABEL _("Check")
+#define OU_LABEL _("OU, Organizational Unit:")
+#define OU_TOOLTIP_LABEL _("The name of the OU in which we want to create the computer account in the domain. If the account already exists, it will be updated. Example: \"ubhosts\" or \"OU=UBL Servers,OU=KOM,DC=ad,DC=holding,DC=com\"")
\ No newline at end of file
diff --git a/ubl-settings-system-connection.glade b/ubl-settings-system-connection.glade
index 3d5afc2..455221e 100644
--- a/ubl-settings-system-connection.glade
+++ b/ubl-settings-system-connection.glade
@@ -306,6 +306,42 @@
1
+
+
+
+ False
+ True
+ 2
+
+
True
@@ -346,7 +382,7 @@
False
True
- 2
+ 3