diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index bcb9bd3..aa9bebc 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -6,7 +6,7 @@ config main_config; int yon_load_proceed(YON_CONFIG_TYPE type){ yon_config_load_register(YON_CONFIG_DEFAULT,"users","DEFAULTPASSWD DEFAULTROOTPASSWD USERGROUPS DEFAULTUSER HASHPASSWD ADDADM",NULL); - yon_config_load_register_no_cleaning(type,"users","DEFAULTPASSWD DEFAULTROOTPASSWD DEFAULTUSER HASHPASSWD USERGROUPS ADDADM USERADD[*] USERSHADOW[*] GROUPADD[*]","[system]","SYSTEMBOOT_STATEMODE","[save]","SAVE_ROOTCOPY_CHANGES",NULL); + yon_config_load_register_no_cleaning(type,"users","DEFAULTPASSWD DEFAULTROOTPASSWD DEFAULTUSER HASHPASSWD USERGROUPS ADDADM USERADD[*] USERADD_SYNC USERSHADOW[*] GROUPADD[*]","[system]","SYSTEMBOOT_STATEMODE","[save]","SAVE_ROOTCOPY_CHANGES",NULL); if (type!=YON_CONFIG_GLOBAL){ yon_config_load_register_no_cleaning(YON_CONFIG_GLOBAL,"users","DEFAULTPASSWD DEFAULTROOTPASSWD",NULL); } @@ -79,7 +79,7 @@ void yon_interface_update(main_window *widgets){ char *pars = ""; if (parameters_size>5&&strcmp(parameters[5],"x")&&strcmp(parameters[5],"")){ - if (!check_is_password_hash(parameters[5])){ + if (!check_is_password_hash(parameters[5])&¶meters[5][0]!='%'&¶meters[5][1]!='%'){ pars = ENCRYPTED_LABEL; } else { pars = UNENCRYPTED_LABEL; @@ -125,7 +125,7 @@ void yon_interface_update(main_window *widgets){ char *pars=""; if (parameters_size>3&&strcmp(parameters[3],"x")&&strcmp(parameters[3],"")){ - if (!check_is_password_hash(parameters[3])){ + if (!check_is_password_hash(parameters[3])&¶meters[5][0]!='%'&¶meters[5][1]!='%'){ pars = ENCRYPTED_LABEL; } else { pars = UNENCRYPTED_LABEL; @@ -355,6 +355,11 @@ void yon_hide_passwords(template_saving_window *window){ } } +void on_save_done(main_window *widgets){ + on_config_update(NULL,widgets); +} + + void on_config_save(GtkWidget *self, main_window *widgets){ yon_accept_changes(); yon_samba_sync_proceed(); @@ -417,12 +422,13 @@ void on_config_save(GtkWidget *self, main_window *widgets){ } } -void on_config_global_save(){ +void on_config_global_save(GtkWidget *self, main_window *widgets){ yon_accept_changes(); yon_samba_sync_proceed(); template_saving_window *window = yon_save_proceed("global",YON_CONFIG_GLOBAL,"users", "DEFAULTPASSWD DEFAULTROOTPASSWD DEFAULTUSER HASHPASSWD USERGROUPS ADDADM USERADD[*] USERSHADOW[*] GROUPADD[*]",NULL); - if (window) yon_hide_passwords(window); - + if (window){ + yon_hide_passwords(window); + } } void on_config_local_save(GtkWidget *self, main_window *widgets){ @@ -620,8 +626,11 @@ yon_confirmation_window *yon_delete_confirmation_new(){ window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton"); window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton"); window->DeletionTree = yon_gtk_builder_get_widget(builder,"DeletionTree"); + window->HatLabel = yon_gtk_builder_get_widget(builder,"userTitleNameLabel"); window->DeleteCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"DeleteCell")); window->DeleteHomeCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"DeleteHomeCell")); + window->UserCell = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"UserCell")); + window->TitleLabel = yon_gtk_builder_get_widget(builder,"TitleLabel"); window->list = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1")); gtk_window_set_title(GTK_WINDOW(window->Window),DELETE_CONFIRMATION_TITLE_LABEL); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); @@ -679,6 +688,9 @@ void yon_group_delete_confirmation_open(main_window *widgets){ gtk_window_set_transient_for(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window)); GtkTreeIter iter,itar; dictionary *dict = NULL; + gtk_label_set_text(GTK_LABEL(window->TitleLabel),DELETE_GROUP_CONFIRMATION_CONFIRM_LABEL); + gtk_tree_view_column_set_title(window->UserCell,GROUP_LABEL); + gtk_label_set_text(GTK_LABEL(window->HatLabel),DELETE_GROUP_CONFIRMATION_TITLE_LABEL); gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(window->DeletionTree),2),0); gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(window->DeletionTree),3),0); gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(window->DeletionTree),4),0); @@ -883,6 +895,7 @@ void on_password_change(GtkWidget *self, dictionary *entry_dict){ if (!check_is_password_hash(password)){ gtk_entry_set_text(GTK_ENTRY(window->PasswordHashEntry),password); } else { + if (password[0]=='%'&&password[1]=='%') gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->NoEncriptionCheck),1); gtk_entry_set_text(GTK_ENTRY(window->PasswordEntry),password); } @@ -959,6 +972,32 @@ void on_expiration_clicked(GtkWidget *self, ubl_settings_usergroups_user_window yon_char_parsed_free(hash_algos,hash_size); } + void on_users_boot_toggled(GtkToggleButton *self){ + if (gtk_toggle_button_get_active(self)){ + char *parameter = yon_config_get_by_key("USERADD_SYNC"); + if (!parameter){ + yon_config_register("USERADD_SYNC","users","boot"); + } else { + yon_config_append("USERADD_SYNC","boot",","); + } + } else { + yon_config_remove_element("USERADD_SYNC","boot",","); + } + } + + void on_users_shutdown_toggled(GtkToggleButton *self){ + if (gtk_toggle_button_get_active(self)){ + char *parameter = yon_config_get_by_key("USERADD_SYNC"); + if (!parameter){ + yon_config_register("USERADD_SYNC","users","shutdown"); + } else { + yon_config_append("USERADD_SYNC","shutdown",","); + } + } else { + yon_config_remove_element("USERADD_SYNC","shutdown",","); + } + } + ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_additional_settings_new(){ ubl_settings_usergroups_additional_settings_window *window = malloc(sizeof(ubl_settings_usergroups_additional_settings_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubl_settings_usergroups_additional_settings); @@ -976,9 +1015,20 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_ window->EncryptAllPasswordsButton=yon_gtk_builder_get_widget(builder,"EncryptAllPasswordsButton"); window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton"); window->AcceptButton=yon_gtk_builder_get_widget(builder,"AcceptButton"); + window->UsersBootCheck=yon_gtk_builder_get_widget(builder,"UsersBootCheck"); + window->UsersShutdownCheck=yon_gtk_builder_get_widget(builder,"UsersShutdownCheck"); yon_window_config_custom_window_setup(GTK_WINDOW(window->Window),"AdditionalSettingsWindow"); gtk_window_set_title(GTK_WINDOW(window->Window),ADDITIONAL_SETTINGS_TITLE_LABEL); + char *sync_parameters = yon_config_get_by_key("USERADD_SYNC"); + if (sync_parameters){ + if (strstr(sync_parameters,"boot")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsersBootCheck),1); + } + if (strstr(sync_parameters,"shutdown")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsersShutdownCheck),1); + } + } int hash_size=0; config_str hash_algos = yon_file_open(hash_list_path,&hash_size); @@ -1062,6 +1112,9 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_ g_signal_connect(G_OBJECT(window->PasswordHashCombo),"changed",G_CALLBACK(on_hash_changed),window); + g_signal_connect(G_OBJECT(window->UsersBootCheck),"toggled",G_CALLBACK(on_users_boot_toggled),NULL); + g_signal_connect(G_OBJECT(window->UsersShutdownCheck),"toggled",G_CALLBACK(on_users_shutdown_toggled),NULL); + return window; } @@ -1226,7 +1279,7 @@ void on_group_save(GtkWidget *self, dictionary *dict){ if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree)),&model,&iter)) gtk_list_store_append(widgets->GroupsList,&iter); char *passwor = (char*)gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry)); - gtk_list_store_set(widgets->GroupsList,&iter,0,strcmp(gid,"x")?gid:"",1,group_name,2,group_users,3,yon_char_append(non_unique,gsystem),4,gtk_combo_box_get_active(GTK_COMBO_BOX(window->PasswordCombo))==0?PASSWORD_NO_SET_LABEL:check_is_password_hash(passwor)?UNENCRYPTED_LABEL:ENCRYPTED_LABEL,-1); + gtk_list_store_set(widgets->GroupsList,&iter,0,strcmp(gid,"x")?gid:"",1,group_name,2,group_users,3,yon_char_append(non_unique,gsystem),4,gtk_combo_box_get_active(GTK_COMBO_BOX(window->PasswordCombo))==0?PASSWORD_NO_SET_LABEL:check_is_password_hash(passwor)&&passwor[0]=='%'?UNENCRYPTED_LABEL:ENCRYPTED_LABEL,-1); on_subwindow_close(self); } @@ -1321,6 +1374,7 @@ ubl_settings_usergroups_group_window *yon_ubl_settings_usergroups_group_new(int window->StatusCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"StatusCell")); window->GroupColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"GroupColumn")); window->list = gtk_list_store_new(2,G_TYPE_BOOLEAN,G_TYPE_STRING); + gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(window->list),1,GTK_SORT_ASCENDING); yon_window_config_custom_window_setup(GTK_WINDOW(window->GroupsWindow),"GroupWindow"); gtk_window_set_title(GTK_WINDOW(window->GroupsWindow),GROUPS_TITLE_LABEL); @@ -1756,6 +1810,22 @@ void on_user_save(GtkWidget *self, dictionary *dict){ password=""; } + if (!window->old_password||window->old_password&&strcmp(window->old_password,password)){ + time_t t = time(NULL); + struct tm tm = *localtime(&t); + char *month = yon_char_from_int(tm.tm_mon+1); + if (strlen(month)==1){ + month=yon_char_append("0",month); + } + char *day = yon_char_from_int(tm.tm_mday); + if (strlen(day)<2){ + day=yon_char_append("0",day); + } + password_changed_date = yon_char_unite(yon_char_from_int(1900+tm.tm_year),"-",month,"-",day,NULL); + } else { + password_changed_date = (char*)gtk_entry_get_text(GTK_ENTRY(window->userPasswordChangedEntry)); + } + deactivate = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userDeactivatedCheck)); if (deactivate){ if (strlen(password)>1&&password[0]=='%'&&password[1]=='%'){ @@ -1801,7 +1871,7 @@ void on_user_save(GtkWidget *self, dictionary *dict){ password_expiration_date = (char*)gtk_entry_get_text(GTK_ENTRY(window->userPasswordExpirationEntry)); if (yon_char_is_empty(password_expiration_date)){ - password_expiration_date=""; + password_expiration_date="-1"; } long warning_days_active = gtk_spin_button_get_value(GTK_SPIN_BUTTON(window->userWarningSpin)); @@ -1852,22 +1922,6 @@ void on_user_save(GtkWidget *self, dictionary *dict){ extra_options=(char*)gtk_entry_get_text(GTK_ENTRY(window->userExtraOptionsEntry)); - if (!window->old_password||window->old_password&&strcmp(window->old_password,password)){ - time_t t = time(NULL); - struct tm tm = *localtime(&t); - char *month = yon_char_from_int(tm.tm_mon+1); - if (strlen(month)==1){ - month=yon_char_append("0",month); - } - char *day = yon_char_from_int(tm.tm_mday); - if (strlen(day)==1){ - day=yon_char_append("0",day); - } - password_changed_date = yon_char_unite(yon_char_from_int(1900+tm.tm_year),"-",month,"-",day,NULL); - } else { - password_changed_date = (char*)gtk_entry_get_text(GTK_ENTRY(window->userPasswordChangedEntry)); - } - int force_at_next_login_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userForceChangeCheck)); if (force_at_next_login_active){ password_changed_date = "0"; @@ -2025,9 +2079,9 @@ void on_date_selected(GtkWidget *self, ubl_settings_usergroups_user_window *wind char *dy = yon_char_from_int(day); char *mn = yon_char_from_int(month+1); char *yr = yon_char_from_int(year); - if (tm.tm_mon+1<10) mn = yon_char_append("0",mn); - if (tm.tm_mday<10) dy = yon_char_append("0",dy); - char *date_string = yon_char_unite(yr,"-",mn,"-",dy); + if (month+1<10) mn = yon_char_append("0",mn); + if (day<10) dy = yon_char_append("0",dy); + char *date_string = yon_char_unite(yr,"-",mn,"-",dy,NULL); gtk_entry_set_text(GTK_ENTRY(window->userPasswordExpirationEntry), date_string); window->expiration_unix=date_string; free(dy); @@ -2112,6 +2166,12 @@ void on_parameter_changed(GtkWidget *self,ubl_settings_usergroups_user_window *w free(final_string); } +void on_remove_expired(GtkWidget *self, GtkEntryIconPosition icon_pos, GdkEvent *event, GtkEntry *target){ + if (icon_pos == GTK_ENTRY_ICON_SECONDARY){ + gtk_entry_set_text(target,""); + } +} + ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ ubl_settings_usergroups_user_window *window = malloc(sizeof(ubl_settings_usergroups_user_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubl_settings_usergroups_user); @@ -2227,6 +2287,7 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ g_signal_connect(G_OBJECT(window->userDontCheckCheck),"toggled",G_CALLBACK(on_parameter_changed),window); g_signal_connect(G_OBJECT(window->userGroupsCheck),"toggled",G_CALLBACK(on_parameter_changed),window); g_signal_connect(G_OBJECT(window->userGroupsEntry),"changed",G_CALLBACK(on_parameter_changed),window); + g_signal_connect(G_OBJECT(window->userPasswordExpirationEntry),"icon-press",G_CALLBACK(on_remove_expired),window->userPasswordExpirationEntry); return window; } @@ -2346,7 +2407,10 @@ void on_main_edit(GtkWidget *self, main_window *widgets){ } } if (parsed_size>5){ - window->old_password=parameters[5]; + window->old_password=yon_char_new(parameters[5]); + if (!yon_char_is_empty(window->old_password)&&strlen(window->old_password)&&window->old_password[0]=='!'&&window->old_password[1]=='*'){ + free(yon_char_divide(window->old_password,1)); + } if (strcmp(parameters[5],"x")&&strcmp(parameters[5],"")){ if (strstr(parameters[5],"!*")){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userDeactivatedCheck),1); @@ -2366,12 +2430,16 @@ void on_main_edit(GtkWidget *self, main_window *widgets){ } free(parameters); parameters=yon_char_parse(yon_config_get_by_key(USERSHADOW(name)),&parsed_size,":"); - gtk_entry_set_text(GTK_ENTRY(window->userPasswordChangedEntry),parsed_size>0?parameters[0]:""); + if (parameters&&!strcmp(parameters[0],"0")) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userForceChangeCheck),1); + else + gtk_entry_set_text(GTK_ENTRY(window->userPasswordChangedEntry),parsed_size>0?parameters[0]:""); gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userPasswordChangeDelayMinimumSpin),atol(parsed_size>1?parameters[1]:"0")); gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userPasswordChangeDelayMaximumSpin),atol(parsed_size>2?parameters[2]:"0")); gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userWarningSpin),atol(parsed_size>3?parameters[3]:"0")); gtk_spin_button_set_value(GTK_SPIN_BUTTON(window->userActivitySpin),atol(parsed_size>4?parameters[4]:"0")); - if (parsed_size>5&&!yon_char_is_empty(parameters[5])){ + + if (parsed_size>5&&!yon_char_is_empty(parameters[5])&&strcmp(parameters[5],"-1")){ gtk_entry_set_text(GTK_ENTRY(window->userPasswordExpirationEntry),parameters[5]); } gtk_window_set_transient_for(GTK_WINDOW(window->CreateUserWindow),GTK_WINDOW(widgets->Window)); @@ -2685,6 +2753,7 @@ main_window *yon_main_window_complete(main_window *widgets){ yon_window_config_add_listener((GtkWidget*)g_list_nth_data(list,i),yon_char_append("GroupColumn",yon_char_from_int(i)),"fixed-width",YON_TYPE_INT); } g_list_free(list); + yon_save_window_set_postsave_function(on_save_done,widgets); return widgets; } diff --git a/source/ubl-settings-usergroups.h b/source/ubl-settings-usergroups.h index 19dde23..a8a7e83 100644 --- a/source/ubl-settings-usergroups.h +++ b/source/ubl-settings-usergroups.h @@ -189,6 +189,8 @@ typedef struct{ GtkWidget *CancelButton; GtkWidget *AcceptButton; GtkWidget *EncryptAllPasswordsButton; + GtkWidget *UsersBootCheck; + GtkWidget *UsersShutdownCheck; } ubl_settings_usergroups_additional_settings_window; typedef struct{ @@ -313,9 +315,12 @@ typedef struct{ GtkWidget *CancelButton; GtkWidget *AcceptButton; GtkWidget *DeletionTree; + GtkWidget *TitleLabel; + GtkWidget *HatLabel; GtkListStore *list; GtkCellRenderer *DeleteCell; GtkCellRenderer *DeleteHomeCell; + GtkTreeViewColumn *UserCell; } yon_confirmation_window; ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_additional_settings_new(); @@ -336,4 +341,6 @@ void on_settings_usergroups_system_open(GtkWidget *self, main_window *widgets); ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(); -void on_password_accept(GtkWidget *self, dictionary *dict); \ No newline at end of file +void on_password_accept(GtkWidget *self, dictionary *dict); + +void on_config_update(GtkWidget *self, main_window *widgets); \ No newline at end of file diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 2343452..b9eeb41 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -51,7 +51,6 @@ #define UPDATE_LABEL _("Update users and groups") #define SAVING_CONFIGURATION_LABEL _("Additional saving configuration") -#define DELETE_CONFIRMATION_LABEL(type,target) yon_char_unite(_(yon_char_append("Are you sure want to delete ",type)), " '",target,"'?",NULL) //ubl-settings-usergroups-additional-settings.glade #define ADDITIONAL_SETTINGS_TITLE_LABEL _("Additional settings") @@ -90,6 +89,9 @@ #define DESCRYPT_DESCRIPTION_LABEL _("descrypt (Hash function from the DES family of algorithms)") #define NTHASH_DESCRIPTION_LABEL _("NTHash (Hash function from the NT Windows family of algorithms)") +#define ADDITIONAL_BOOT_LABEL _("While booting the operating system, apply the settings of all users from the configuration") +#define ADDITIONAL_SHUTDOWN_LABEL _("While shutdown, save the settings of all users with UID>=1000 to the configuration") + //ubl-settings-usergroups-group-creation.glade #define CONFIGURE_GROUP_TITLE_LABEL _("Configure group") #define ADD_GROUP_TITLE_LABEL _("Add group") @@ -176,7 +178,7 @@ #define USERSHADOW_BOOT_LABEL _("During system startup, load the user's parameters from the configuration") #define USERSHADOW_SHUTDOWN_LABEL _("When shutting down the system, save the user's parameters into the configuration") -#define MAIN_NAME_LABEL _("Main") +#define MAIN_NAME_LABEL _("Basic") #define ADDITIONAL_NAME_LABEL _("Additional") #define SYNCRONIZATION_NAME_LABEL _("Syncronization") diff --git a/ubl-settings-usergroups-additional-settings.glade b/ubl-settings-usergroups-additional-settings.glade index 85b8682..b513aa7 100644 --- a/ubl-settings-usergroups-additional-settings.glade +++ b/ubl-settings-usergroups-additional-settings.glade @@ -58,83 +58,58 @@ - + True - False - vertical - 5 - - - True - False - 5 - - - True - False - 5 - 4 - Default user name (if there's no another): - 0 - - - False - True - 0 - - - - - True - True - com.ublinux.ubl-settings-usergroups.profile-symbolic - superadmin - - - True - True - 1 - - - - - False - True - 0 - - - - - User with ID 1000 is administrator - True - True - False - True - - - False - True - 1 - - + True True False + 5 + 5 + 5 + 5 vertical 5 True False + vertical 5 - + True False - 4 - Default user password: - 0 + 5 + + + True + False + 5 + 4 + Default user name (if there's no another): + 0 + + + False + True + 0 + + + + + True + True + com.ublinux.ubl-settings-usergroups.profile-symbolic + superadmin + + + True + True + 1 + + False @@ -143,15 +118,12 @@ - + + User with ID 1000 is administrator True - False - 0 - - Default - No password required - Set a password - + True + False + True False @@ -160,37 +132,209 @@ - + True - False - True - False - * - com.ublinux.ubl-settings-usergroups.key-symbolic - ******** - password + False + vertical + 5 + + + True + False + 5 + + + True + False + 4 + Default user password: + 0 + + + False + True + 0 + + + + + True + False + 0 + + Default + No password required + Set a password + + + + False + True + 1 + + + + + True + False + True + False + * + com.ublinux.ubl-settings-usergroups.key-symbolic + ******** + password + + + True + True + 2 + + + + + True + False + True + True + image3 + + + + False + True + 3 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + False + 4 + Root user password: + 0 + + + False + True + 0 + + + + + True + False + 0 + + Default + No password required + Set a password + + + + False + True + 1 + + + + + True + False + True + False + * + com.ublinux.ubl-settings-usergroups.key-symbolic + ******** + password + + + True + True + 2 + + + + + True + False + True + True + image4 + + + + False + True + 4 + + + + + False + True + 3 + + - True + False True 2 - + True - False - True - True - image3 - + False + 5 + + + True + False + 5 + 4 + Password hash algorythm: + 0 + + + False + True + 0 + + + + + True + False + 0 + + + True + True + 1 + + False True - 3 + 4 @@ -201,102 +345,50 @@ - + + Encrypt all passwords True - False - 5 - - - True - False - 4 - Root user password: - 0 - - - False - True - 0 - - - - - True - False - 0 - - Default - No password required - Set a password - - - - False - True - 1 - - - - - True - False - True - False - * - com.ublinux.ubl-settings-usergroups.key-symbolic - ******** - password - - - True - True - 2 - - - - - True - False - True - True - image4 - - - - False - True - 4 - - + True + True + Encrypt all unencrypted passwords at global configuration + end + image5 False True - 3 + 1 + + + + True + False + Basic + - False - True - 2 + False True False + 5 + 5 + 5 + 5 + vertical 5 - + + While booting the operating system, apply the settings of all users from the configuration True - False - 5 - 4 - Password hash algorythm: - 0 + True + False + True False @@ -305,22 +397,33 @@ - + + While shutdown, save the settings of all users with UID>=1000 to the configuration True - False - 0 + True + False + True - True + False True 1 - False - True - 4 + 1 + + + + + True + False + Syncronization + + + 1 + False @@ -330,22 +433,6 @@ 1 - - - Encrypt all passwords - True - True - True - Encrypt all unencrypted passwords at global configuration - end - image5 - - - False - True - 2 - - diff --git a/ubl-settings-usergroups-confirmation.glade b/ubl-settings-usergroups-confirmation.glade index 8e05972..a28ec6b 100644 --- a/ubl-settings-usergroups-confirmation.glade +++ b/ubl-settings-usergroups-confirmation.glade @@ -86,7 +86,7 @@ - + True False Confirm user(-s) deletion: @@ -130,7 +130,7 @@ - + User diff --git a/ubl-settings-usergroups-group-creation.glade b/ubl-settings-usergroups-group-creation.glade index 41a4a85..c613619 100644 --- a/ubl-settings-usergroups-group-creation.glade +++ b/ubl-settings-usergroups-group-creation.glade @@ -464,7 +464,7 @@ True False - Main + Basic False diff --git a/ubl-settings-usergroups-group.glade b/ubl-settings-usergroups-group.glade index 417dfd4..d9599dc 100644 --- a/ubl-settings-usergroups-group.glade +++ b/ubl-settings-usergroups-group.glade @@ -40,6 +40,7 @@ True True + 1 vertical @@ -60,6 +61,9 @@ Group + True + descending + 1 diff --git a/ubl-settings-usergroups-user.glade b/ubl-settings-usergroups-user.glade index 8a6640a..7320fe6 100644 --- a/ubl-settings-usergroups-user.glade +++ b/ubl-settings-usergroups-user.glade @@ -565,7 +565,7 @@ True False - Main + Basic False @@ -881,8 +881,8 @@ True - False - True + False + com.ublinux.ubl-settings-usergroups.trash-symbolic False diff --git a/ubl-settings-usergroups.pot b/ubl-settings-usergroups.pot index 8974fc1..3156e54 100644 --- a/ubl-settings-usergroups.pot +++ b/ubl-settings-usergroups.pot @@ -53,7 +53,7 @@ msgstr "" msgid "UID" msgstr "" -#: source/ubl-strings.h:14 source/ubl-strings.h:100 +#: source/ubl-strings.h:14 source/ubl-strings.h:103 msgid "Login" msgstr "" @@ -211,7 +211,7 @@ msgstr "" msgid "Set a password" msgstr "" -#: source/ubl-strings.h:60 source/ubl-strings.h:103 +#: source/ubl-strings.h:60 source/ubl-strings.h:106 msgid "Encrypted" msgstr "" @@ -295,394 +295,406 @@ msgstr "" msgid "NTHash (Hash function from the NT Windows family of algorithms)" msgstr "" +#: source/ubl-strings.h:93 +msgid "" +"While booting the operating system, apply the settings of all users from the " +"configuration" +msgstr "" + #: source/ubl-strings.h:94 +msgid "" +"While shutdown, save the settings of all users with UID>=1000 to the " +"configuration" +msgstr "" + +#: source/ubl-strings.h:97 msgid "Configure group" msgstr "" -#: source/ubl-strings.h:95 +#: source/ubl-strings.h:98 msgid "Add group" msgstr "" -#: source/ubl-strings.h:96 +#: source/ubl-strings.h:99 msgid "Group id:" msgstr "" -#: source/ubl-strings.h:97 +#: source/ubl-strings.h:100 msgid "Group name:" msgstr "" -#: source/ubl-strings.h:98 +#: source/ubl-strings.h:101 msgid "Group users:" msgstr "" -#: source/ubl-strings.h:99 +#: source/ubl-strings.h:102 msgid "Automatically" msgstr "" -#: source/ubl-strings.h:101 +#: source/ubl-strings.h:104 msgid "Create group with ununique GID" msgstr "" -#: source/ubl-strings.h:102 +#: source/ubl-strings.h:105 msgid "Create system group" msgstr "" -#: source/ubl-strings.h:104 +#: source/ubl-strings.h:107 msgid "Additional configuration" msgstr "" -#: source/ubl-strings.h:105 +#: source/ubl-strings.h:108 msgid "Group configuration synchronization" msgstr "" -#: source/ubl-strings.h:106 +#: source/ubl-strings.h:109 msgid "When shutting down the system, save the group into the configuration" msgstr "" -#: source/ubl-strings.h:107 +#: source/ubl-strings.h:110 msgid "Group administrators:" msgstr "" -#: source/ubl-strings.h:108 +#: source/ubl-strings.h:111 msgid "Group name must not start with digit" msgstr "" -#: source/ubl-strings.h:111 +#: source/ubl-strings.h:114 msgid "Default groups" msgstr "" -#: source/ubl-strings.h:112 +#: source/ubl-strings.h:115 msgid "Main group" msgstr "" -#: source/ubl-strings.h:113 +#: source/ubl-strings.h:116 msgid "Additional groups" msgstr "" -#: source/ubl-strings.h:114 +#: source/ubl-strings.h:117 msgid "Choose groups" msgstr "" -#: source/ubl-strings.h:115 +#: source/ubl-strings.h:118 msgid "Choose users" msgstr "" -#: source/ubl-strings.h:118 +#: source/ubl-strings.h:121 msgid "System users and groups" msgstr "" -#: source/ubl-strings.h:119 +#: source/ubl-strings.h:122 msgid "Locked" msgstr "" -#: source/ubl-strings.h:120 +#: source/ubl-strings.h:123 msgid "Username" msgstr "" -#: source/ubl-strings.h:121 +#: source/ubl-strings.h:124 msgid "" "Primary\n" "group" msgstr "" -#: source/ubl-strings.h:122 +#: source/ubl-strings.h:125 msgid "" "Home\n" "directory" msgstr "" -#: source/ubl-strings.h:123 source/ubl-strings.h:129 +#: source/ubl-strings.h:126 source/ubl-strings.h:132 msgid "Group" msgstr "" -#: source/ubl-strings.h:124 +#: source/ubl-strings.h:127 msgid "Update the system users and groups list" msgstr "" -#: source/ubl-strings.h:125 +#: source/ubl-strings.h:128 msgid "Toggle system groups and users" msgstr "" -#: source/ubl-strings.h:127 +#: source/ubl-strings.h:130 msgid "Password mismatch" msgstr "" -#: source/ubl-strings.h:128 +#: source/ubl-strings.h:131 msgid "Password must be at least" msgstr "" -#: source/ubl-strings.h:128 +#: source/ubl-strings.h:131 msgid "characters" msgstr "" -#: source/ubl-strings.h:130 +#: source/ubl-strings.h:133 msgid "" "Days until\n" "warning" msgstr "" -#: source/ubl-strings.h:131 +#: source/ubl-strings.h:134 msgid "" "Days\n" "without activity" msgstr "" -#: source/ubl-strings.h:132 +#: source/ubl-strings.h:135 msgid "" "Shell\n" "path" msgstr "" -#: source/ubl-strings.h:133 +#: source/ubl-strings.h:136 msgid "" "Password has\n" "been changed" msgstr "" -#: source/ubl-strings.h:134 +#: source/ubl-strings.h:137 msgid "" "Expiration\n" "date" msgstr "" -#: source/ubl-strings.h:135 +#: source/ubl-strings.h:138 msgid "" "Password change\n" "interval (min)" msgstr "" -#: source/ubl-strings.h:136 +#: source/ubl-strings.h:139 msgid "" "Password change\n" "interval (max)" msgstr "" -#: source/ubl-strings.h:139 +#: source/ubl-strings.h:142 msgid "Add user" msgstr "" -#: source/ubl-strings.h:140 +#: source/ubl-strings.h:143 msgid "Configure user" msgstr "" -#: source/ubl-strings.h:141 +#: source/ubl-strings.h:144 msgid "Set" msgstr "" -#: source/ubl-strings.h:142 +#: source/ubl-strings.h:145 msgid "Empty important field" msgstr "" -#: source/ubl-strings.h:143 +#: source/ubl-strings.h:146 msgid "Login must not start with digit" msgstr "" -#: source/ubl-strings.h:144 +#: source/ubl-strings.h:147 msgid "Loading has failed" msgstr "" -#: source/ubl-strings.h:145 +#: source/ubl-strings.h:148 msgid "Login name" msgstr "" -#: source/ubl-strings.h:146 +#: source/ubl-strings.h:149 msgid "Additional groups:" msgstr "" -#: source/ubl-strings.h:147 +#: source/ubl-strings.h:150 msgid "Password configuration" msgstr "" -#: source/ubl-strings.h:148 +#: source/ubl-strings.h:151 msgid "Password has been changed:" msgstr "" -#: source/ubl-strings.h:149 +#: source/ubl-strings.h:152 msgid "expiration date:" msgstr "" -#: source/ubl-strings.h:150 +#: source/ubl-strings.h:153 msgid "Password change interval: minimum" msgstr "" -#: source/ubl-strings.h:151 +#: source/ubl-strings.h:154 msgid "days, maximum" msgstr "" -#: source/ubl-strings.h:152 +#: source/ubl-strings.h:155 msgid "days" msgstr "" -#: source/ubl-strings.h:153 +#: source/ubl-strings.h:156 msgid "Days until warning:" msgstr "" -#: source/ubl-strings.h:154 +#: source/ubl-strings.h:157 msgid "Days without activity:" msgstr "" -#: source/ubl-strings.h:155 +#: source/ubl-strings.h:158 msgid "Force change at next login" msgstr "" -#: source/ubl-strings.h:156 +#: source/ubl-strings.h:159 msgid "User shell:" msgstr "" -#: source/ubl-strings.h:157 +#: source/ubl-strings.h:160 msgid "Home directory:" msgstr "" -#: source/ubl-strings.h:158 +#: source/ubl-strings.h:161 msgid "Don't set" msgstr "" -#: source/ubl-strings.h:159 +#: source/ubl-strings.h:162 msgid "Create system user" msgstr "" -#: source/ubl-strings.h:160 +#: source/ubl-strings.h:163 msgid "Create user with ununique (repeating) UID" msgstr "" -#: source/ubl-strings.h:161 +#: source/ubl-strings.h:164 msgid "Do not check login for compliance with character rules" msgstr "" -#: source/ubl-strings.h:162 +#: source/ubl-strings.h:165 msgid "Temporary deactivation" msgstr "" -#: source/ubl-strings.h:163 +#: source/ubl-strings.h:166 msgid "Save" msgstr "" -#: source/ubl-strings.h:164 +#: source/ubl-strings.h:167 msgid "login_name" msgstr "" -#: source/ubl-strings.h:165 +#: source/ubl-strings.h:168 msgid "group_name" msgstr "" -#: source/ubl-strings.h:166 +#: source/ubl-strings.h:169 msgid "User name" msgstr "" -#: source/ubl-strings.h:167 +#: source/ubl-strings.h:170 msgid "Sync user" msgstr "" -#: source/ubl-strings.h:168 +#: source/ubl-strings.h:171 msgid "Sync user with password" msgstr "" -#: source/ubl-strings.h:169 +#: source/ubl-strings.h:172 msgid "Encrypt all passwords" msgstr "" -#: source/ubl-strings.h:171 +#: source/ubl-strings.h:174 msgid "User configuration" msgstr "" -#: source/ubl-strings.h:172 +#: source/ubl-strings.h:175 msgid "User configuration synchronization" msgstr "" -#: source/ubl-strings.h:173 +#: source/ubl-strings.h:176 msgid "During system startup, load the user from the configuration" msgstr "" -#: source/ubl-strings.h:174 +#: source/ubl-strings.h:177 msgid "When shutting down the system, save the user into the configuration" msgstr "" -#: source/ubl-strings.h:175 +#: source/ubl-strings.h:178 msgid "User password configuration syncronization" msgstr "" -#: source/ubl-strings.h:176 +#: source/ubl-strings.h:179 msgid "" "During system startup, load the user's parameters from the configuration" msgstr "" -#: source/ubl-strings.h:177 +#: source/ubl-strings.h:180 msgid "" "When shutting down the system, save the user's parameters into the " "configuration" msgstr "" -#: source/ubl-strings.h:179 -msgid "Main" +#: source/ubl-strings.h:182 +msgid "Basic" msgstr "" -#: source/ubl-strings.h:180 +#: source/ubl-strings.h:183 msgid "Additional" msgstr "" -#: source/ubl-strings.h:181 +#: source/ubl-strings.h:184 msgid "Syncronization" msgstr "" -#: source/ubl-strings.h:183 +#: source/ubl-strings.h:186 msgid "Not specified" msgstr "" -#: source/ubl-strings.h:186 +#: source/ubl-strings.h:189 msgid "Repeat password:" msgstr "" -#: source/ubl-strings.h:187 +#: source/ubl-strings.h:190 msgid "Password hash:" msgstr "" -#: source/ubl-strings.h:188 +#: source/ubl-strings.h:191 msgid "Do not encrypt password" msgstr "" -#: source/ubl-strings.h:191 +#: source/ubl-strings.h:194 msgid "Additional configuration of service parameter saving" msgstr "" -#: source/ubl-strings.h:192 +#: source/ubl-strings.h:195 msgid "" "At every system shutdown save changes of (root)/var/lib/samba\n" "into (hd)/ublinux-data/rootcopy" msgstr "" -#: source/ubl-strings.h:193 +#: source/ubl-strings.h:196 msgid "For system save mode \"Sandbox\"" msgstr "" -#: source/ubl-strings.h:196 +#: source/ubl-strings.h:199 msgid "Group deletion" msgstr "" -#: source/ubl-strings.h:197 +#: source/ubl-strings.h:200 msgid "Confirm group(-s) deletion:" msgstr "" -#: source/ubl-strings.h:199 +#: source/ubl-strings.h:202 msgid "User deletion" msgstr "" -#: source/ubl-strings.h:200 +#: source/ubl-strings.h:203 msgid "Confirm user(-s) deletion:" msgstr "" -#: source/ubl-strings.h:201 +#: source/ubl-strings.h:204 msgid "Chosen" msgstr "" -#: source/ubl-strings.h:202 +#: source/ubl-strings.h:205 msgid "User" msgstr "" -#: source/ubl-strings.h:203 +#: source/ubl-strings.h:206 msgid "Home directory" msgstr "" -#: source/ubl-strings.h:204 +#: source/ubl-strings.h:207 msgid "Delete home directory" msgstr "" diff --git a/ubl-settings-usergroups_ru.po b/ubl-settings-usergroups_ru.po index d492236..aeb03e1 100644 --- a/ubl-settings-usergroups_ru.po +++ b/ubl-settings-usergroups_ru.po @@ -53,7 +53,7 @@ msgstr "Алгоритм хэширования пароля:" msgid "UID" msgstr "UID" -#: source/ubl-strings.h:14 source/ubl-strings.h:100 +#: source/ubl-strings.h:14 source/ubl-strings.h:103 msgid "Login" msgstr "Логин" @@ -225,7 +225,7 @@ msgstr "Пароль не требуется" msgid "Set a password" msgstr "Задать пароль" -#: source/ubl-strings.h:60 source/ubl-strings.h:103 +#: source/ubl-strings.h:60 source/ubl-strings.h:106 msgid "Encrypted" msgstr "Зашифрован" @@ -311,91 +311,107 @@ msgstr "descrypt (Хеш-функция из семейства алгоритм msgid "NTHash (Hash function from the NT Windows family of algorithms)" msgstr "NTHash (Хеш-функция из семейства алгоритмов NT Windows)" +#: source/ubl-strings.h:93 +msgid "" +"While booting the operating system, apply the settings of all users from the " +"configuration" +msgstr "" +"При запуске операционной системы применять настройки всех пользователей " +"из конфигурации" + #: source/ubl-strings.h:94 +msgid "" +"While shutdown, save the settings of all users with UID>=1000 to the " +"configuration" +msgstr "" +"При завершении работы сохранить настройки пользователей " +"с UID>=1000 в конфигурацию" + +#: source/ubl-strings.h:97 msgid "Configure group" msgstr "Редактировать группу" -#: source/ubl-strings.h:95 +#: source/ubl-strings.h:98 msgid "Add group" msgstr "Добавить группу" -#: source/ubl-strings.h:96 +#: source/ubl-strings.h:99 msgid "Group id:" msgstr "ID Группы:" -#: source/ubl-strings.h:97 +#: source/ubl-strings.h:100 msgid "Group name:" msgstr "Имя группы:" -#: source/ubl-strings.h:98 +#: source/ubl-strings.h:101 msgid "Group users:" msgstr "Пользователи группы:" -#: source/ubl-strings.h:99 +#: source/ubl-strings.h:102 msgid "Automatically" msgstr "Автоматически" -#: source/ubl-strings.h:101 +#: source/ubl-strings.h:104 msgid "Create group with ununique GID" msgstr "Создать группу с повторяющимися (не уникальными) GID" -#: source/ubl-strings.h:102 +#: source/ubl-strings.h:105 msgid "Create system group" msgstr "Создать системную группу" -#: source/ubl-strings.h:104 +#: source/ubl-strings.h:107 msgid "Additional configuration" msgstr "Дополнительные настройки" -#: source/ubl-strings.h:105 +#: source/ubl-strings.h:108 msgid "Group configuration synchronization" msgstr "Синхронизация настроек группы" -#: source/ubl-strings.h:106 +#: source/ubl-strings.h:109 msgid "When shutting down the system, save the group into the configuration" msgstr "При завершении работы системы сохранить группу в конфигурацию" -#: source/ubl-strings.h:107 +#: source/ubl-strings.h:110 msgid "Group administrators:" msgstr "Администраторы группы:" -#: source/ubl-strings.h:108 +#: source/ubl-strings.h:111 msgid "Group name must not start with digit" msgstr "Имя группы не должно начинаться с цифры" -#: source/ubl-strings.h:111 +#: source/ubl-strings.h:114 msgid "Default groups" msgstr "Группы пользователей по умолчанию" -#: source/ubl-strings.h:112 +#: source/ubl-strings.h:115 msgid "Main group" msgstr "Основная группа" -#: source/ubl-strings.h:113 +#: source/ubl-strings.h:116 msgid "Additional groups" msgstr "Дополнительные группы" -#: source/ubl-strings.h:114 +#: source/ubl-strings.h:117 msgid "Choose groups" msgstr "Выбрать группы" -#: source/ubl-strings.h:115 +#: source/ubl-strings.h:118 msgid "Choose users" msgstr "Выбрать пользователей" -#: source/ubl-strings.h:118 +#: source/ubl-strings.h:121 msgid "System users and groups" msgstr "Пользователи и группы в системе" -#: source/ubl-strings.h:119 +#: source/ubl-strings.h:122 msgid "Locked" msgstr "Отключен" -#: source/ubl-strings.h:120 +#: source/ubl-strings.h:123 msgid "Username" msgstr "Имя пользователя" -#: source/ubl-strings.h:121 +#: source/ubl-strings.h:124 msgid "" "Primary\n" "group" @@ -403,7 +419,7 @@ msgstr "" "Основная\n" "группа" -#: source/ubl-strings.h:122 +#: source/ubl-strings.h:125 msgid "" "Home\n" "directory" @@ -411,31 +427,31 @@ msgstr "" "Домашний\n" "каталог" -#: source/ubl-strings.h:123 source/ubl-strings.h:129 +#: source/ubl-strings.h:126 source/ubl-strings.h:132 msgid "Group" msgstr "Группа" -#: source/ubl-strings.h:124 +#: source/ubl-strings.h:127 msgid "Update the system users and groups list" msgstr "Обновить список пользователей и групп системы" -#: source/ubl-strings.h:125 +#: source/ubl-strings.h:128 msgid "Toggle system groups and users" msgstr "Переключить видимость системных пользователей и групп" -#: source/ubl-strings.h:127 +#: source/ubl-strings.h:130 msgid "Password mismatch" msgstr "Несовпадение паролей" -#: source/ubl-strings.h:128 +#: source/ubl-strings.h:131 msgid "Password must be at least" msgstr "Пароль должен состоять из как минимум" -#: source/ubl-strings.h:128 +#: source/ubl-strings.h:131 msgid "characters" msgstr "символов" -#: source/ubl-strings.h:130 +#: source/ubl-strings.h:133 msgid "" "Days until\n" "warning" @@ -443,7 +459,7 @@ msgstr "" "Дней до\n" "предупреждения" -#: source/ubl-strings.h:131 +#: source/ubl-strings.h:134 msgid "" "Days\n" "without activity" @@ -451,7 +467,7 @@ msgstr "" "Дней без\n" "активности" -#: source/ubl-strings.h:132 +#: source/ubl-strings.h:135 msgid "" "Shell\n" "path" @@ -459,7 +475,7 @@ msgstr "" "Путь до\n" "оболочки" -#: source/ubl-strings.h:133 +#: source/ubl-strings.h:136 msgid "" "Password has\n" "been changed" @@ -467,7 +483,7 @@ msgstr "" "Пароль\n" "изменён" -#: source/ubl-strings.h:134 +#: source/ubl-strings.h:137 msgid "" "Expiration\n" "date" @@ -475,7 +491,7 @@ msgstr "" "Дата\n" "устаревания" -#: source/ubl-strings.h:135 +#: source/ubl-strings.h:138 msgid "" "Password change\n" "interval (min)" @@ -483,7 +499,7 @@ msgstr "" "Интервал смены\n" "пароля (мин.)" -#: source/ubl-strings.h:136 +#: source/ubl-strings.h:139 msgid "" "Password change\n" "interval (max)" @@ -491,199 +507,199 @@ msgstr "" "Интервал смены\n" "пароля (макс.)" -#: source/ubl-strings.h:139 +#: source/ubl-strings.h:142 msgid "Add user" msgstr "Добавить пользователя" -#: source/ubl-strings.h:140 +#: source/ubl-strings.h:143 msgid "Configure user" msgstr "Редактировать пользователя" -#: source/ubl-strings.h:141 +#: source/ubl-strings.h:144 msgid "Set" msgstr "Задать" -#: source/ubl-strings.h:142 +#: source/ubl-strings.h:145 msgid "Empty important field" msgstr "Пустое важное поле" -#: source/ubl-strings.h:143 +#: source/ubl-strings.h:146 msgid "Login must not start with digit" msgstr "Логин не должен начинаться с цифры" -#: source/ubl-strings.h:144 +#: source/ubl-strings.h:147 msgid "Loading has failed" msgstr "Ошибка загрузки" -#: source/ubl-strings.h:145 +#: source/ubl-strings.h:148 msgid "Login name" msgstr "Имя логина" -#: source/ubl-strings.h:146 +#: source/ubl-strings.h:149 msgid "Additional groups:" msgstr "Дополнительные группы:" -#: source/ubl-strings.h:147 +#: source/ubl-strings.h:150 msgid "Password configuration" msgstr "Конфигурация пароля" -#: source/ubl-strings.h:148 +#: source/ubl-strings.h:151 msgid "Password has been changed:" msgstr "Пароль изменён:" -#: source/ubl-strings.h:149 +#: source/ubl-strings.h:152 msgid "expiration date:" msgstr "Дата устаревания:" -#: source/ubl-strings.h:150 +#: source/ubl-strings.h:153 msgid "Password change interval: minimum" msgstr "Интервал смены пароля: минимум" -#: source/ubl-strings.h:151 +#: source/ubl-strings.h:154 msgid "days, maximum" msgstr "дней, максимум" -#: source/ubl-strings.h:152 +#: source/ubl-strings.h:155 msgid "days" msgstr "дней" -#: source/ubl-strings.h:153 +#: source/ubl-strings.h:156 msgid "Days until warning:" msgstr "Дней до предупреждения:" -#: source/ubl-strings.h:154 +#: source/ubl-strings.h:157 msgid "Days without activity:" msgstr "Дней без активности:" -#: source/ubl-strings.h:155 +#: source/ubl-strings.h:158 msgid "Force change at next login" msgstr "Принудительно сменить при следующем входе в систему" -#: source/ubl-strings.h:156 +#: source/ubl-strings.h:159 msgid "User shell:" msgstr "Оболочка пользователя:" -#: source/ubl-strings.h:157 +#: source/ubl-strings.h:160 msgid "Home directory:" msgstr "Домашний каталог:" -#: source/ubl-strings.h:158 +#: source/ubl-strings.h:161 msgid "Don't set" msgstr "Не создавать" -#: source/ubl-strings.h:159 +#: source/ubl-strings.h:162 msgid "Create system user" msgstr "Создать системного пользователя" -#: source/ubl-strings.h:160 +#: source/ubl-strings.h:163 msgid "Create user with ununique (repeating) UID" msgstr "Создать пользователя с повторяющимися (не уникальными) UID" -#: source/ubl-strings.h:161 +#: source/ubl-strings.h:164 msgid "Do not check login for compliance with character rules" msgstr "Не проверять логин на несоответствие правилам использования символов" -#: source/ubl-strings.h:162 +#: source/ubl-strings.h:165 msgid "Temporary deactivation" msgstr "Временное отключение учётной записи" -#: source/ubl-strings.h:163 +#: source/ubl-strings.h:166 msgid "Save" msgstr "Сохранить" -#: source/ubl-strings.h:164 +#: source/ubl-strings.h:167 msgid "login_name" msgstr "Имя_логина" -#: source/ubl-strings.h:165 +#: source/ubl-strings.h:168 msgid "group_name" msgstr "Имя_группы" -#: source/ubl-strings.h:166 +#: source/ubl-strings.h:169 msgid "User name" msgstr "Имя пользователя" -#: source/ubl-strings.h:167 +#: source/ubl-strings.h:170 msgid "Sync user" msgstr "Синхронизировать пользователя" -#: source/ubl-strings.h:168 +#: source/ubl-strings.h:171 msgid "Sync user with password" msgstr "Синхронизировать пользователя с паролем" -#: source/ubl-strings.h:169 +#: source/ubl-strings.h:172 msgid "Encrypt all passwords" msgstr "Зашифровать все пароли" -#: source/ubl-strings.h:171 +#: source/ubl-strings.h:174 msgid "User configuration" msgstr "Настройка пользователя" -#: source/ubl-strings.h:172 +#: source/ubl-strings.h:175 msgid "User configuration synchronization" msgstr "Синхронизация настроек пользователя" -#: source/ubl-strings.h:173 +#: source/ubl-strings.h:176 msgid "During system startup, load the user from the configuration" msgstr "" "При запуске операционной системы применять настройки пользователя из " "конфигурации" -#: source/ubl-strings.h:174 +#: source/ubl-strings.h:177 msgid "When shutting down the system, save the user into the configuration" msgstr "" "При завершении работы операционной системы сохранить настройки пользователя " "в конфигурацию" -#: source/ubl-strings.h:175 +#: source/ubl-strings.h:178 msgid "User password configuration syncronization" msgstr "Синхронизация настроек пароля пользователя" -#: source/ubl-strings.h:176 +#: source/ubl-strings.h:179 msgid "" "During system startup, load the user's parameters from the configuration" msgstr "При загрузке системы загрузить параметры пользователя из конфигурации" -#: source/ubl-strings.h:177 +#: source/ubl-strings.h:180 msgid "" "When shutting down the system, save the user's parameters into the " "configuration" msgstr "" "При завершении работы системы сохранить параметры пользователя в конфигурацию" -#: source/ubl-strings.h:179 -msgid "Main" +#: source/ubl-strings.h:182 +msgid "Basic" msgstr "Основные" -#: source/ubl-strings.h:180 +#: source/ubl-strings.h:183 msgid "Additional" msgstr "Дополнительные" -#: source/ubl-strings.h:181 +#: source/ubl-strings.h:184 msgid "Syncronization" msgstr "Синхронизация" -#: source/ubl-strings.h:183 +#: source/ubl-strings.h:186 msgid "Not specified" msgstr "Не задан" -#: source/ubl-strings.h:186 +#: source/ubl-strings.h:189 msgid "Repeat password:" msgstr "Подтверждение пароля:" -#: source/ubl-strings.h:187 +#: source/ubl-strings.h:190 msgid "Password hash:" msgstr "Хэш пароля:" -#: source/ubl-strings.h:188 +#: source/ubl-strings.h:191 msgid "Do not encrypt password" msgstr "Не шифровать пароль" -#: source/ubl-strings.h:191 +#: source/ubl-strings.h:194 msgid "Additional configuration of service parameter saving" msgstr "Дополнительные настройки сохранения параметров сервисов" -#: source/ubl-strings.h:192 +#: source/ubl-strings.h:195 msgid "" "At every system shutdown save changes of (root)/var/lib/samba\n" "into (hd)/ublinux-data/rootcopy" @@ -691,44 +707,38 @@ msgstr "" "При каждом завершении работы ОС сохранять изменения (root)/var/lib/samba\n" "в (hd)/ublinux-data/rootcopy/" -#: source/ubl-strings.h:193 +#: source/ubl-strings.h:196 msgid "For system save mode \"Sandbox\"" msgstr "Для режима сохранения системы \"Песочница\"" -#: source/ubl-strings.h:196 +#: source/ubl-strings.h:199 msgid "Group deletion" -msgstr "Удаление пользователя(-лей)" +msgstr "Удаление групп(-ы)" -#: source/ubl-strings.h:197 +#: source/ubl-strings.h:200 msgid "Confirm group(-s) deletion:" msgstr "Подтвердите удаление групп(-ы):" -#: source/ubl-strings.h:199 +#: source/ubl-strings.h:202 msgid "User deletion" -msgstr "Удаление групп(-ы)" +msgstr "Удаление пользователя(-ей)" -#: source/ubl-strings.h:200 +#: source/ubl-strings.h:203 msgid "Confirm user(-s) deletion:" msgstr "Подтвердите удаление пользователя (-ей):" -#: source/ubl-strings.h:201 +#: source/ubl-strings.h:204 msgid "Chosen" msgstr "Выбран" -#: source/ubl-strings.h:202 +#: source/ubl-strings.h:205 msgid "User" msgstr "Пользователь" -#: source/ubl-strings.h:203 +#: source/ubl-strings.h:206 msgid "Home directory" msgstr "Домашний каталог" -#: source/ubl-strings.h:204 +#: source/ubl-strings.h:207 msgid "Delete home directory" msgstr "Удалить домашний каталог" - -msgid "Are you sure want to delete group" -msgstr "Вы уверены, что хотите удалить группу" - -msgid "Are you sure want to delete user" -msgstr "Вы уверены, что хотите удалить пользователя"