From eedd65a6d7c4e66906079c711e3ebe3e0e7a308b Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 10 Dec 2024 16:09:32 +0600 Subject: [PATCH] Fixed crash; Removed unused variables --- source/CMakeLists.txt | 16 ++- source/ubl-settings-usergroups.c | 182 ++++++++++++++++--------------- source/ubl-settings-usergroups.h | 91 +++++++++++++++- 3 files changed, 192 insertions(+), 97 deletions(-) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index d92d948..b33f93b 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -63,13 +63,19 @@ add_custom_target( DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C} ) -#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -std=c++2a") -#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always -lm") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \ + +add_definitions(-DVTE_INCLUDE) + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -Wmissing-declarations -fdiagnostics-color=always \ -O2 -pipe -fno-plt -fexceptions \ - -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \ + -Wformat -Werror=format-security \ -fstack-clash-protection -fcf-protection") - + +string(FIND "${CMAKE_CXX_FLAGS}" "-D_FORTIFY_SOURCE" FORTIFY_FOUND) + +if(FORTIFY_FOUND EQUAL -1) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wp,-D_FORTIFY_SOURCE=2") +endif() set(SOURCE_FILES ubl-settings-usergroups.c diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index c89e545..2c6d160 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -51,7 +51,7 @@ int yon_load_proceed(YON_CONFIG_TYPE type){ return 1; } else if (type==YON_CONFIG_CUSTOM){ - char *path; + char *path=NULL;; GtkWidget *dialog = gtk_file_chooser_dialog_new(template_app_information.app_title,NULL,GTK_FILE_CHOOSER_ACTION_SAVE,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL); GtkFileFilter *filter = gtk_file_filter_new(); gtk_file_filter_add_pattern(filter,"*.ini"); @@ -70,7 +70,7 @@ int yon_load_proceed(YON_CONFIG_TYPE type){ } yon_config_load_config(type,config_get_command(path),NULL); } - + return 1; } void yon_interface_update(main_window *widgets){ @@ -182,7 +182,7 @@ void yon_interface_update(main_window *widgets){ } } -void on_config_local_load(GtkWidget *self, main_window *widgets){ +void on_config_local_load(GtkWidget *, main_window *widgets){ yon_load_proceed(YON_CONFIG_LOCAL); textdomain(template_ui_LocaleName); yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); @@ -191,7 +191,7 @@ void on_config_local_load(GtkWidget *self, main_window *widgets){ yon_interface_update(widgets); } -void on_config_global_load(GtkWidget *self, main_window *widgets){ +void on_config_global_load(GtkWidget *, main_window *widgets){ yon_load_proceed(YON_CONFIG_GLOBAL); textdomain(template_ui_LocaleName); yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); @@ -200,7 +200,7 @@ void on_config_global_load(GtkWidget *self, main_window *widgets){ yon_interface_update(widgets); } -void on_config_custom_load(GtkWidget *self,main_window *widgets){ +void on_config_custom_load(GtkWidget *,main_window *widgets){ yon_load_proceed(YON_CONFIG_CUSTOM); textdomain(template_ui_LocaleName); yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); @@ -414,7 +414,7 @@ void on_save_done(main_window *widgets, config_str output, int size){ } -void on_config_save(GtkWidget *self, main_window *widgets){ +void on_config_save(GtkWidget *, main_window *){ main_config.save_config=2; template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_BOTH,config_get_command("global"),NULL); if (window){ @@ -473,7 +473,7 @@ void on_config_save(GtkWidget *self, main_window *widgets){ } } -void on_config_global_save(GtkWidget *self, main_window *widgets){ +void on_config_global_save(GtkWidget *, main_window *){ main_config.save_config=0; template_saving_window *window = yon_save_proceed("global",YON_CONFIG_GLOBAL,config_get_command("global"),NULL); if (window){ @@ -481,7 +481,7 @@ void on_config_global_save(GtkWidget *self, main_window *widgets){ } } -void on_config_local_save(GtkWidget *self, main_window *widgets){ +void on_config_local_save(GtkWidget *, main_window *){ main_config.save_config=1; int size; config_str keys = yon_config_get_all_by_key(USERADD_SEARCH_macro,&size); @@ -515,7 +515,7 @@ void on_config_local_save(GtkWidget *self, main_window *widgets){ } } -void on_config_custom_save(GtkWidget *self, main_window *widgets){ +void on_config_custom_save(GtkWidget *, main_window *){ main_config.save_config=1; template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_CUSTOM,config_get_command("system"),NULL); if (window){ @@ -561,7 +561,7 @@ int yon_samba_sync_get(char *user){ return 0; } -void on_delete_confirmation_delete_home_check(GtkCellRenderer *self, char *path, yon_confirmation_window *window){ +void on_delete_confirmation_delete_home_check(GtkCellRenderer *, char *path, yon_confirmation_window *window){ GtkTreeIter iter; gboolean status; gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->list),&iter,path); @@ -570,7 +570,7 @@ void on_delete_confirmation_delete_home_check(GtkCellRenderer *self, char *path, } -void on_delete_confirmation_delete_check(GtkCellRenderer *self, char *path, yon_confirmation_window *window){ +void on_delete_confirmation_delete_check(GtkCellRenderer *, char *path, yon_confirmation_window *window){ GtkTreeIter iter; gboolean status; gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->list),&iter,path); @@ -640,7 +640,7 @@ void yon_group_delete_confirmation_save(GtkWidget *self, dictionary *dict){ int valid2 = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(window->list),&itar); for (;valid2;valid2 = gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&itar)){ char *name_check; - int status,delete; + int delete; gtk_tree_model_get(GTK_TREE_MODEL(window->list),&itar,0,&delete,1,&name_check,-1); if (!strcmp(name,name_check)&&delete){ gtk_list_store_remove(widgets->GroupsList,&iter); @@ -726,7 +726,7 @@ void yon_delete_confirmation_open(main_window *widgets){ GList *list = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&model); int chosen_size=0; config_str chosen = NULL; - for (int i=0;iGroupsTree)),&model); int chosen_size=0; config_str chosen = NULL; - for (int i=0;iWindow),GTK_WINDOW(widgets->Window)); g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_saving_settings_save),window); @@ -823,7 +823,7 @@ void on_password_combo_changed(GtkComboBox *self, GtkWidget *target){ } -void on_filechooser_open(GtkWidget *self, GtkEntry *output_target){ +void on_filechooser_open(GtkWidget *, GtkEntry *output_target){ GtkWidget *dialog = gtk_file_chooser_dialog_new(FILECHOOSER_TITLE_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,CANCEL_LABEL,GTK_RESPONSE_CANCEL,ACCEPT_LABEL,GTK_RESPONSE_ACCEPT,NULL); int responce = gtk_dialog_run(GTK_DIALOG(dialog)); if (responce==GTK_RESPONSE_ACCEPT){ @@ -848,7 +848,7 @@ void on_groups_save(GtkWidget *self, dictionary *dict){ on_subwindow_close(self); } -void on_groups_clicked(GtkWidget *self, GtkEntry *output_target){ +void on_groups_clicked(GtkWidget *, GtkEntry *output_target){ ubl_settings_usergroups_group_window *window = yon_ubl_settings_usergroups_group_new(0); gtk_window_set_title(GTK_WINDOW(window->GroupsWindow),MAIN_GROUP_LABEL); gtk_label_set_text(GTK_LABEL(window->HeaderLabel),MAIN_GROUP_LABEL); @@ -875,8 +875,8 @@ void on_groups_clicked(GtkWidget *self, GtkEntry *output_target){ gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(window->GroupsTree),0),0); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->GroupsTree)),GTK_SELECTION_SINGLE); const char *current_group=gtk_entry_get_text(output_target); - int digits=0; - for (int k=0;kGroupsTree),1),GID_LABEL); gtk_window_set_title(GTK_WINDOW(window->GroupsWindow),ADDITIONAL_GROUPS_TITLE_LABEL); @@ -992,8 +992,7 @@ void on_passwords_encrypt(){ } } -void on_password_change(GtkWidget *self, dictionary *entry_dict){ - GtkComboBox *combo = yon_dictionary_get_data(entry_dict->first,GtkComboBox*); +void on_password_change(GtkWidget *, dictionary *entry_dict){ GtkEntry *output_target = yon_dictionary_get_data(entry_dict->first->next,GtkEntry*); ubl_settings_usergroups_password_window *window = yon_ubl_settings_usergroups_password_new(); dictionary *dict = NULL; @@ -1019,20 +1018,20 @@ void on_password_change(GtkWidget *self, dictionary *entry_dict){ } -void on_additional_settings_clicked(GtkWidget *self, GtkEntry *output_target){ +void on_additional_settings_clicked(GtkWidget *, GtkEntry *){ ubl_settings_usergroups_additional_settings_window *window = yon_ubl_settings_usergroups_additional_settings_new(); g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); gtk_widget_show(window->Window); } -void on_expiration_clicked(GtkWidget *self, ubl_settings_usergroups_user_window *window){ +void on_expiration_clicked(GtkWidget *, ubl_settings_usergroups_user_window *window){ gtk_popover_popup(GTK_POPOVER(window->CalendarPopup)); } // standard functions - void on_additional_settings_save(GtkWidget *self, ubl_settings_usergroups_additional_settings_window *window){ + void on_additional_settings_save(GtkWidget *, ubl_settings_usergroups_additional_settings_window *window){ const char *default_user = (char*)gtk_entry_get_text(GTK_ENTRY(window->DefaultUserNameEntry)); if (!yon_char_is_empty(default_user)){ yon_config_register(DEFAULTUSER_parameter,DEFAULTUSER_parameter_command,yon_char_new((char*)default_user)); @@ -1092,7 +1091,7 @@ void on_expiration_clicked(GtkWidget *self, ubl_settings_usergroups_user_window } } - void on_hash_changed(GtkWidget *self, ubl_settings_usergroups_additional_settings_window *window){ + void on_hash_changed(GtkWidget *, ubl_settings_usergroups_additional_settings_window *window){ int hash_size=0; config_str hash_algos = yon_file_open(hash_list_path,&hash_size); @@ -1252,7 +1251,7 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_ return window; } -void on_ubl_settings_usergroups_additional_settings_open(GtkWidget *self, main_window *widgets){ +void on_ubl_settings_usergroups_additional_settings_open(GtkWidget *, main_window *widgets){ ubl_settings_usergroups_additional_settings_window *window = yon_ubl_settings_usergroups_additional_settings_new(); g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); @@ -1261,7 +1260,7 @@ void on_ubl_settings_usergroups_additional_settings_open(GtkWidget *self, main_w } -void on_user_choose(GtkWidget *self, GtkEntry *target){ +void on_user_choose(GtkWidget *, GtkEntry *target){ ubl_settings_usergroups_group_window *window = yon_ubl_settings_usergroups_group_new(1); gtk_label_set_text(GTK_LABEL(window->HeaderLabel),GROUP_USERS_TITLE_LABEL); gtk_label_set_text(GTK_LABEL(window->HeaderLabel),GROUP_USERS_TITLE_LABEL); @@ -1310,7 +1309,7 @@ void on_user_choose(GtkWidget *self, GtkEntry *target){ gtk_widget_show(window->GroupsWindow); } -void on_GID_update(GtkWidget *self, ubl_settings_usergroups_group_creation_window *window){ +void on_GID_update(GtkWidget *, ubl_settings_usergroups_group_creation_window *window){ if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck))){ if (window->last_gid){ gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),window->last_gid); @@ -1468,7 +1467,7 @@ void on_group_save(GtkWidget *self, dictionary *dict){ on_subwindow_close(self); } -void on_system_parameter_changed(GtkWidget *self, ubl_settings_usergroups_group_creation_window *window){ +void on_system_parameter_changed(GtkWidget *, ubl_settings_usergroups_group_creation_window *window){ char *non_unique = NULL; char *gsystem = NULL; @@ -1542,7 +1541,7 @@ ubl_settings_usergroups_group_creation_window *yon_ubl_settings_usergroups_group return window; } -void on_group_clicked(GtkCellRenderer *self, char *path, ubl_settings_usergroups_group_window *window){ +void on_group_clicked(GtkCellRenderer *, char *path, ubl_settings_usergroups_group_window *window){ GtkTreeIter iter; gboolean status; gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->list),&iter,path); @@ -1612,7 +1611,7 @@ void on_standard_groups_accept(GtkWidget *self, ubl_settings_usergroups_group_wi on_subwindow_close(self); } -void on_standard_groups_open(GtkWidget *self, main_window *widgets){ +void on_standard_groups_open(GtkWidget *, main_window *widgets){ ubl_settings_usergroups_group_window *window = yon_ubl_settings_usergroups_group_new(0); gtk_window_set_title(GTK_WINDOW(window->GroupsWindow),DEFAULT_GROUPS_TITLE_LABEL); gtk_label_set_text(GTK_LABEL(window->HeaderLabel),DEFAULT_GROUPS_TITLE_LABEL); @@ -1658,7 +1657,7 @@ void on_standard_groups_open(GtkWidget *self, main_window *widgets){ gtk_widget_show(window->GroupsWindow); } -void on_password_show_hide(GtkEntry *self, GtkEntryIconPosition icon_pos, GdkEvent* event){ +void on_password_show_hide(GtkEntry *self, GtkEntryIconPosition icon_pos, GdkEvent*){ if (icon_pos == GTK_ENTRY_ICON_SECONDARY){ int visible = gtk_entry_get_visibility(self); if (!visible){ @@ -1670,7 +1669,7 @@ void on_password_show_hide(GtkEntry *self, GtkEntryIconPosition icon_pos, GdkEv } } -void on_password_changed(GtkEntry *self, ubl_settings_usergroups_password_window *window){ +void on_password_changed(GtkEntry *, ubl_settings_usergroups_password_window *window){ char *self_text = (char*)gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry)); char *pair_text = (char*)gtk_entry_get_text(GTK_ENTRY(window->RepeatPasswordEntry)); if ((!yon_char_is_empty(self_text)&&!yon_char_is_empty(pair_text))&&strcmp(self_text,pair_text)){ @@ -1800,7 +1799,10 @@ void yon_system_load(main_window *window){ } gtk_list_store_set(window->liststore1,&iter,0,!strcmp(parsed[1],"!*"),8,parsed_size>2?date_string:"",9,expiration_string,10,parsed_size>3?parsed[3]:"",11,parsed_size>4?parsed[4]:"",12,parsed_size>5?parsed[5]:"",13,parsed_size>2?parsed[6]:"",-1); + if (!yon_char_is_empty(date_string)) free(date_string); + if (!yon_char_is_empty(expiration_string)) free(expiration_string); } + yon_char_parsed_free(parsed,parsed_size); } } @@ -1815,7 +1817,7 @@ void yon_system_load(main_window *window){ // yon_system_load(window); // } -void on_system_update(GtkWidget *self, main_window *window){ +void on_system_update(GtkWidget *, main_window *window){ main_config.groups = yon_file_open(groups_path,&main_config.groups_size); main_config.users = yon_file_open(users_path,&main_config.users_size); @@ -1860,7 +1862,7 @@ ubl_settings_usergroups_system_window *yon_ubl_settings_usergroups_system_new(){ yon_window_config_custom_window_setup(GTK_WINDOW(window->MonitorWindow),"InspectorWindow"); yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(window->SystemTree)); GList *list = gtk_tree_view_get_columns(GTK_TREE_VIEW(window->SystemTree)); - for (int i=0;iMonitorWindow); } @@ -1882,7 +1884,7 @@ void on_settings_usergroups_system_open(GtkWidget *self, main_window *widgets){ -void on_user_shell_changed(GtkWidget *self, ubl_settings_usergroups_user_window *window){ +void on_user_shell_changed(GtkWidget *, ubl_settings_usergroups_user_window *window){ const char *current = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(window->userShellCombo)); if (!yon_char_is_empty(current)&&!strcmp(current,SET_LABEL)){ if(gtk_combo_box_get_active(GTK_COMBO_BOX(window->userShellCombo))>1){ @@ -1895,7 +1897,7 @@ void on_user_shell_changed(GtkWidget *self, ubl_settings_usergroups_user_window } } -void on_UID_update(GtkWidget *self, ubl_settings_usergroups_user_window *window){ +void on_UID_update(GtkWidget *, ubl_settings_usergroups_user_window *window){ if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck))){ if (window->last_uid){ gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),window->last_uid); @@ -1929,7 +1931,7 @@ void on_UID_update(GtkWidget *self, ubl_settings_usergroups_user_window *window) } } -void on_user_login_update(GtkWidget *self, ubl_settings_usergroups_user_window *window){ +void on_user_login_update(GtkWidget *, ubl_settings_usergroups_user_window *window){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck))){ gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry),gtk_entry_get_text(GTK_ENTRY(window->userLoginEntry))); } else { @@ -1946,7 +1948,6 @@ void on_user_save(GtkWidget *self, dictionary *dict){ char *login = NULL; char *username = NULL; char *main_group = NULL; - char *no_user_group=NULL; char *additional_groups = NULL; char *password_changed_date = NULL; char *password_expiration_date = NULL; @@ -1954,7 +1955,7 @@ void on_user_save(GtkWidget *self, dictionary *dict){ char *password_change_interval_maximum = NULL; char *warning_days = NULL; char *no_activity_days = NULL; - char *force_at_next_login = NULL; + // char *force_at_next_login = NULL; char *user_shell = NULL; char *user_home = NULL; char *create_system_user = NULL; @@ -2038,7 +2039,7 @@ void on_user_save(GtkWidget *self, dictionary *dict){ old_password = window->old_password; yon_check_password_blocked(old_password); } - if (!old_password||old_password&&strcmp(old_password,password)){ + if (!old_password||(old_password&&strcmp(old_password,password))){ time_t t = time(NULL); struct tm tm = *localtime(&t); char *month = yon_char_from_int(tm.tm_mon+1); @@ -2072,9 +2073,6 @@ void on_user_save(GtkWidget *self, dictionary *dict){ int main_group_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck)); if (!main_group_active){ main_group = (char*)gtk_entry_get_text(GTK_ENTRY(window->userGroupsEntry)); - if (yon_char_is_empty(main_group)){ - no_user_group="--no-user-group"; - } } else { main_group = ""; } @@ -2093,9 +2091,6 @@ void on_user_save(GtkWidget *self, dictionary *dict){ if (password_change_interval_minimum_active>0){ password_change_interval_maximum = yon_char_from_long(password_change_interval_maximum_active); } else password_change_interval_maximum = 0; - - - long password_interval_maximum = gtk_spin_button_get_value(GTK_SPIN_BUTTON(window->userPasswordChangeDelayMaximumSpin)); password_expiration_date = (char*)gtk_entry_get_text(GTK_ENTRY(window->userPasswordExpirationEntry)); if (yon_char_is_empty(password_expiration_date)){ @@ -2268,7 +2263,7 @@ void on_toggle_button_set_active_from_combo_box(GtkComboBox *self,ubl_settings_u } } -void on_password_user_changed(GtkComboBox *self,ubl_settings_usergroups_user_window *window){ +void on_password_user_changed(GtkComboBox *,ubl_settings_usergroups_user_window *window){ char *passw = (char*)gtk_entry_get_text(GTK_ENTRY(window->userPasswordEntry)); if ((passw[0]=='$')){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userSyncSAMBACheck),0); @@ -2283,7 +2278,7 @@ void on_password_user_changed(GtkComboBox *self,ubl_settings_usergroups_user_win } } -void on_toggle_button_set_active_from_toggle_button_inversed(GtkToggleButton *self, ubl_settings_usergroups_user_window *window){ +void on_toggle_button_set_active_from_toggle_button_inversed(GtkToggleButton *, ubl_settings_usergroups_user_window *window){ char *passw = (char*)gtk_entry_get_text(GTK_ENTRY(window->userPasswordEntry)); if ((passw[0]!='$')&>k_combo_box_get_active(GTK_COMBO_BOX(window->userPasswordCombo))>1){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userSyncSAMBACheck))){ @@ -2303,12 +2298,12 @@ void on_toggle_button_set_active_from_toggle_button_inversed(GtkToggleButton *se } } -void on_date_selected(GtkWidget *self, ubl_settings_usergroups_user_window *window){ - int year=0, month=0, day=0; +void on_date_selected(GtkWidget *, ubl_settings_usergroups_user_window *window){ + guint year=0, month=0, day=0; gtk_calendar_get_date(GTK_CALENDAR(window->ExpirationCalendar),&year,&month,&day); time_t t = time(NULL); struct tm tm = *localtime(&t); - if ((1900+tm.tm_year)>year||((1900+tm.tm_year)==year&&tm.tm_mon>month)||((1900+tm.tm_year)==year&&tm.tm_mon==month&&tm.tm_mday>day)) { + if ((1900+tm.tm_year)>(int)year||((1900+tm.tm_year)==(int)year&&tm.tm_mon>(int)month)||((1900+tm.tm_year)==(int)year&&tm.tm_mon==(int)month&&tm.tm_mday>(int)day)) { gtk_entry_set_text(GTK_ENTRY(window->userPasswordExpirationEntry), ""); return; } @@ -2325,7 +2320,7 @@ void on_date_selected(GtkWidget *self, ubl_settings_usergroups_user_window *wind free(yr); } -void on_parameter_changed(GtkWidget *self,ubl_settings_usergroups_user_window *window){ +void on_parameter_changed(GtkWidget *,ubl_settings_usergroups_user_window *window){ char *user_shell=NULL; char *user_home=NULL; char *login=NULL; @@ -2404,7 +2399,7 @@ void on_parameter_changed(GtkWidget *self,ubl_settings_usergroups_user_window *w } } -void on_remove_expired(GtkWidget *self, GtkEntryIconPosition icon_pos, GdkEvent *event, GtkEntry *target){ +void on_remove_expired(GtkWidget *, GtkEntryIconPosition icon_pos, GdkEvent *, GtkEntry *target){ if (icon_pos == GTK_ENTRY_ICON_SECONDARY){ gtk_entry_set_text(target,""); } @@ -2485,7 +2480,7 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ yon_window_config_custom_window_setup(GTK_WINDOW(window->CreateUserWindow),"UserWindow"); yon_dictionary_add_or_create_if_exists_with_data(entry_dict,"combo",window->userPasswordCombo); yon_dictionary_add_or_create_if_exists_with_data(entry_dict,"entry",window->userPasswordEntry); - char *password = yon_config_get_by_key(USERADD((char*)gtk_entry_get_text(GTK_ENTRY(window->userLoginEntry)))); + // char *password = yon_config_get_by_key(USERADD((char*)gtk_entry_get_text(GTK_ENTRY(window->userLoginEntry)))); g_signal_connect(G_OBJECT(window->UserCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->userUIDAutoCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->userUIDEntry); g_signal_connect(G_OBJECT(window->userHomeButton),"clicked",G_CALLBACK(on_filechooser_open),window->userHomeEntry); @@ -2530,12 +2525,8 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ return window; } -void on_main_add(GtkWidget *self, main_window *widgets){ - GtkTreeModel *model; - GtkWidget *cur_tree; - GtkTreeIter iter; +void on_main_add(GtkWidget *, main_window *widgets){ if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){ - model = GTK_TREE_MODEL(widgets->UsersList); gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree))); ubl_settings_usergroups_user_window *window = yon_ubl_settings_usergroups_user_new(); gtk_window_set_title(GTK_WINDOW(window->CreateUserWindow),ADD_USER_TITLE_LABEL); @@ -2550,7 +2541,6 @@ void on_main_add(GtkWidget *self, main_window *widgets){ gtk_window_set_transient_for(GTK_WINDOW(window->CreateUserWindow),GTK_WINDOW(widgets->Window)); gtk_widget_show(window->CreateUserWindow); } else { - model = GTK_TREE_MODEL(widgets->GroupsList); gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree))); ubl_settings_usergroups_group_creation_window *window = yon_ubl_settings_usergroups_group_creation_new(); gtk_window_set_title(GTK_WINDOW(window->CreateGroupWindow),ADD_GROUP_TITLE_LABEL); @@ -2566,9 +2556,8 @@ void on_main_add(GtkWidget *self, main_window *widgets){ } -void on_main_edit(GtkWidget *self, main_window *widgets){ +void on_main_edit(GtkWidget *, main_window *widgets){ GtkTreeModel *model; - GtkWidget *cur_tree; GtkTreeIter iter; if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){ model = GTK_TREE_MODEL(widgets->UsersList); @@ -2595,7 +2584,7 @@ void on_main_edit(GtkWidget *self, main_window *widgets){ gtk_entry_set_text(GTK_ENTRY(window->userUserNameEntry), parsed_size>0?parameters[0]:""); window->old_username=name; if (parsed_size>1){ - if (parsed_size>1&&strcmp(parameters[1],"x")&&strcmp(parameters[1],"")||parsed_size<=1){ + if ((parsed_size>1&&strcmp(parameters[1],"x")&&strcmp(parameters[1],""))||parsed_size<=1){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck),0); gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry), parsed_size>1?parameters[1]:""); } @@ -2779,14 +2768,11 @@ void on_main_edit(GtkWidget *self, main_window *widgets){ } -void on_main_edit_activate(GtkWidget *self, GtkTreePath *path, GtkTreeViewColumn *column, main_window *widgets){ +void on_main_edit_activate(GtkWidget *self, GtkTreePath *, GtkTreeViewColumn *, main_window *widgets){ on_main_edit(self,widgets); } -void on_main_delete(GtkWidget *self, main_window *widgets){ - GtkTreeModel *model; - GtkWidget *cur_tree; - GtkTreeIter iter; +void on_main_delete(GtkWidget *, main_window *widgets){ dialog_confirmation_data *data=malloc(sizeof(dialog_confirmation_data)); data->function=NULL; data->data=NULL; @@ -2797,7 +2783,7 @@ void on_main_delete(GtkWidget *self, main_window *widgets){ } } -void on_config_update(GtkWidget *self, main_window *widgets){ +void on_config_update(GtkWidget *, main_window *widgets){ if (main_config.load_mode==0){ on_config_global_load(NULL,widgets); } else { @@ -2817,17 +2803,33 @@ void on_user_sync_with_config(GtkWidget *,main_window *widgets){ char *target; gtk_tree_model_get(model,&iter,2,&target,-1); int size; - config_str passwd_users = yon_config_load(user_shadow_path,&size); + config_str passwd_users = yon_file_open(users_path,&size); int active_usr = yon_char_parsed_strstr(passwd_users,size,target); int cur_size; - if (size>-1){ + if (size){ + yon_char_remove_last_symbol(passwd_users[active_usr],'\n'); config_str cur_user = yon_char_parse(passwd_users[active_usr],&cur_size,":"); - char *final_user = yon_char_unite(cur_user[4],":",cur_user[5],":",cur_size>1?cur_user[1]:"",":",cur_size>2?cur_user[2]:"",":",cur_user[0],":",":",NULL); - char *final_command = yon_config_parameter_prepare_command(dull_parameter_get_command,NULL,"users",USERADD_SYNC(target)); - yon_config_register(USERADD(target),final_command,final_user); + int final_size=0; + config_str final_user_parsed = NULL; + yon_char_parsed_add_or_create_if_exists(final_user_parsed,&final_size,cur_user[4]); + yon_char_parsed_add_or_create_if_exists(final_user_parsed,&final_size,cur_user[3]); + yon_char_parsed_add_or_create_if_exists(final_user_parsed,&final_size,"x"); + char *extra_groups = yon_char_unite(!yon_char_is_empty(cur_user[6])?"--shell ":"",!yon_char_is_empty(cur_user[6])?cur_user[6]:"",!yon_char_is_empty(cur_user[6])?" ":"",!yon_char_is_empty(cur_user[5])?"--home-dir ":"",!yon_char_is_empty(cur_user[5])?cur_user[5]:"",NULL); + yon_char_parsed_add_or_create_if_exists(final_user_parsed,&final_size,extra_groups); + yon_char_parsed_add_or_create_if_exists(final_user_parsed,&final_size,cur_user[1]); + char *final_user = yon_char_parsed_to_string(final_user_parsed,final_size,":"); + if (config(USERADD(target))){ + char *final_command = yon_config_parameter_prepare_command(dull_parameter_get_command,NULL,"users",USERADD_SYNC(target)); + yon_config_register(USERADD_SYNC(target),final_command,final_user); + + } else { + char *final_command = yon_config_parameter_prepare_command(dull_parameter_get_command,NULL,"users",USERADD(target)); + yon_config_register(USERADD(target),final_command,final_user); + + } - int shadow_size; - config_str shadow = yon_config_load(shadow_path,&shadow_size); + // int shadow_size; + // config_str shadow = yon_file_open(shadow_path,&shadow_size); } } break; @@ -2836,8 +2838,8 @@ void on_user_sync_with_config(GtkWidget *,main_window *widgets){ } } - int *yon_element_chosen(GtkWidget *target){ - return (int*)0x1; + int yon_element_chosen(GtkWidget *){ + return (int)1; } /**config_init() @@ -2920,7 +2922,7 @@ void config_init(){ } } -void on_selection_changed(GtkWidget *self, main_window *widgets){ +void on_selection_changed(GtkWidget *, main_window *widgets){ GtkTreeIter iter; if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){ GtkTreeModel *model = GTK_TREE_MODEL(widgets->UsersList); @@ -2939,12 +2941,13 @@ void on_selection_changed(GtkWidget *self, main_window *widgets){ } } -void on_notebook_page_changed(GtkWidget *self, GtkWidget *page, int num, main_window *widgets){ +void on_notebook_page_changed(GtkWidget *, GtkWidget *, int num, main_window *widgets){ GtkTreeIter iter; if (num==0){ gtk_widget_show(widgets->AddButton); gtk_widget_show(widgets->EditButton); gtk_widget_show(widgets->DeleteButton); + gtk_widget_hide(widgets->UserAddToConfigButton); GtkTreeModel *model = GTK_TREE_MODEL(widgets->UsersList); if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&model,&iter)){ gtk_widget_set_sensitive(widgets->EditButton,1); @@ -2955,6 +2958,7 @@ void on_notebook_page_changed(GtkWidget *self, GtkWidget *page, int num, main_wi gtk_widget_show(widgets->AddButton); gtk_widget_show(widgets->EditButton); gtk_widget_show(widgets->DeleteButton); + gtk_widget_hide(widgets->UserAddToConfigButton); GtkTreeModel *model = GTK_TREE_MODEL(widgets->GroupsList); if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree)),&model,&iter)){ gtk_widget_set_sensitive(widgets->EditButton,1); @@ -2964,7 +2968,7 @@ void on_notebook_page_changed(GtkWidget *self, GtkWidget *page, int num, main_wi } else if (num==2||num==3){ gtk_widget_hide(widgets->AddButton); gtk_widget_hide(widgets->EditButton); - gtk_widget_hide(widgets->DeleteButton); + gtk_widget_show(widgets->UserAddToConfigButton); } } @@ -3027,7 +3031,7 @@ main_window *yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->DeleteButton),"clicked",G_CALLBACK(on_main_delete),widgets); g_signal_connect(G_OBJECT(widgets->button3),"clicked",G_CALLBACK(on_standard_groups_open),widgets); g_signal_connect(G_OBJECT(widgets->button2),"clicked",G_CALLBACK(on_ubl_settings_usergroups_additional_settings_open),widgets); - // g_signal_connect(G_OBJECT(widgets->UserAddToConfigButton),"clicked",G_CALLBACK(on_user_sync_with_config),widgets); + g_signal_connect(G_OBJECT(widgets->UserAddToConfigButton),"clicked",G_CALLBACK(on_user_sync_with_config),widgets); g_signal_connect(G_OBJECT(widgets->UpdateButton),"clicked",G_CALLBACK(on_config_update),widgets); g_signal_connect(G_OBJECT(widgets->SavingSettingsButton),"clicked",G_CALLBACK(on_saving_settings_open),widgets); g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_save),widgets); @@ -3050,7 +3054,7 @@ main_window *yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->GroupsTree),"button-press-event",G_CALLBACK(on_menu_open),widgets->GroupsMenu); yon_system_load(widgets); - on_system_update(NULL,widgets); + // on_system_update(NULL,widgets); yon_root_button_setup((template_main_window*)widgets,main_config.launch_arguments,main_config.launch_size); @@ -3063,12 +3067,12 @@ main_window *yon_main_window_complete(main_window *widgets){ gtk_widget_realize(GTK_WIDGET(widgets->GroupsTree)); yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->GroupsTree)); GList *list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->UsersTree)); - for (int i=0;iGroupsTree)); - for (int i=0;i