diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index b3c0d91..484b89e 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -1370,6 +1370,27 @@ void on_group_save(GtkWidget *self, dictionary *dict){ } } + int config_size=0; + int final_size=0; + config_str config_users = yon_config_get_all_by_key(USERADD_SEARCH_macro,&config_size); + yon_char_parsed_prepend_strings(config_users,config_size,":"); + config_str final = yon_char_parsed_merge(main_config.groups,main_config.groups_size,config_users,config_size,&final_size); + + int found=0; + char *uid_string = (char*)gtk_entry_get_text(GTK_ENTRY(window->userUIDEntry)); + for (int i=0;i1&&!strcmp(parsed[2],uid_string)&&strcmp(parsed[2],window->last_gid)) found = 1; + if (parsed_size) yon_char_parsed_free(parsed,parsed_size); + } + if (found){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),GID_ALREADY_EXIST_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(window->userUIDEntry); + return; + } + group_name = (char*)gtk_entry_get_text(GTK_ENTRY(window->userLoginEntry)); if (group_name[0]>'0'&&group_name[0]<'9'){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),GROUP_BEGINS_WITH_DIGIT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); @@ -1962,10 +1983,27 @@ void on_user_save(GtkWidget *self, dictionary *dict){ if (uid_auto_active){ uid_string=""; } else { + int config_size=0; + int final_size=0; + config_str config_users = yon_config_get_all_by_key(USERADD_SEARCH_macro,&config_size); + yon_char_parsed_prepend_strings(config_users,config_size,":"); + config_str final = yon_char_parsed_merge(main_config.users,main_config.users_size,config_users,config_size,&final_size); + + int found=0; uid_string = (char*)gtk_entry_get_text(GTK_ENTRY(window->userUIDEntry)); - if (yon_char_is_empty(uid_string)){ + for (int i=0;i1&&!strcmp(parsed[2],uid_string)&&strcmp(parsed[2],window->last_uid)) found = 1; + if (parsed_size) yon_char_parsed_free(parsed,parsed_size); + } + if (found){ + yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),UID_ALREADY_EXIST_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(window->userUIDEntry); + return; + } - + if (yon_char_is_empty(uid_string)){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(window->userUIDEntry); return; diff --git a/source/ubl-strings.h b/source/ubl-strings.h index b9eeb41..72191a5 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -184,6 +184,9 @@ #define PASSWORD_NO_SET_LABEL _("Not specified") +#define UID_ALREADY_EXIST_LABEL _("UID already busy") +#define GID_ALREADY_EXIST_LABEL _("GID already busy") + //ubl-settings-usergroups-password.glade #define PASSWORD_REPEAT_LABEL _("Repeat password:") #define PASSWORD_HASH_LABEL _("Password hash:") diff --git a/ubl-settings-usergroups-group.glade b/ubl-settings-usergroups-group.glade index f66823f..06819cc 100644 --- a/ubl-settings-usergroups-group.glade +++ b/ubl-settings-usergroups-group.glade @@ -40,7 +40,7 @@ True True - 1 + 2 vertical diff --git a/ubl-settings-usergroups.pot b/ubl-settings-usergroups.pot index 3156e54..5c47b2c 100644 --- a/ubl-settings-usergroups.pot +++ b/ubl-settings-usergroups.pot @@ -702,4 +702,10 @@ msgid "Are you sure want to delete group" msgstr "" msgid "Are you sure want to delete user" +msgstr "" + +msgid "UID already busy" +msgstr "" + +msgid "GID already busy" msgstr "" \ No newline at end of file diff --git a/ubl-settings-usergroups_ru.po b/ubl-settings-usergroups_ru.po index 709c47c..5197919 100644 --- a/ubl-settings-usergroups_ru.po +++ b/ubl-settings-usergroups_ru.po @@ -742,3 +742,10 @@ msgstr "Домашний каталог" #: source/ubl-strings.h:207 msgid "Delete home directory" msgstr "Удалить домашний каталог" + + +msgid "UID already busy" +msgstr "UID уже существует" + +msgid "GID already busy" +msgstr "GID уже существует" \ No newline at end of file