@ -149,7 +149,6 @@ void yon_interface_update(main_window *widgets){
if ( parameters_size > 1 & & ! strcmp ( parameters [ 1 ] , " x " ) ) parameters [ 1 ] = " " ;
if ( parameters_size > 1 & & ! strcmp ( parameters [ 1 ] , " x " ) ) parameters [ 1 ] = " " ;
char * pars = " " ;
char * pars = " " ;
if ( parameters_size > 4 & & strcmp ( parameters [ 4 ] , " x " ) & & strcmp ( parameters [ 4 ] , " " ) ) {
if ( parameters_size > 4 & & strcmp ( parameters [ 4 ] , " x " ) & & strcmp ( parameters [ 4 ] , " " ) ) {
if ( ! check_is_password_hash ( parameters [ 4 ] ) & & parameters [ 4 ] [ 0 ] ! = ' % ' & & parameters [ 4 ] [ 1 ] ! = ' % ' ) {
if ( ! check_is_password_hash ( parameters [ 4 ] ) & & parameters [ 4 ] [ 0 ] ! = ' % ' & & parameters [ 4 ] [ 1 ] ! = ' % ' ) {
pars = ENCRYPTED_LABEL ;
pars = ENCRYPTED_LABEL ;
} else {
} else {
@ -2110,7 +2109,7 @@ void on_user_save(GtkWidget *self, dictionary *dict){
if ( user_shell_active > 0 ) {
if ( user_shell_active > 0 ) {
char * shell_string = ( char * ) gtk_combo_box_text_get_active_text ( GTK_COMBO_BOX_TEXT ( window - > userShellCombo ) ) ;
char * shell_string = ( char * ) gtk_combo_box_text_get_active_text ( GTK_COMBO_BOX_TEXT ( window - > userShellCombo ) ) ;
if ( strcmp ( shell_string , SET_LABEL ) ) {
if ( strcmp ( shell_string , SET_LABEL ) ) {
user_shell = yon_char_unite ( " --shell " , shell_string , NULL ) ;
user_shell = yon_char_unite ( " --shell " , shell_string , " " , NULL ) ;
} else {
} else {
user_shell = yon_char_unite ( " --shell " , ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > userShellEntry ) ) , NULL ) ;
user_shell = yon_char_unite ( " --shell " , ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > userShellEntry ) ) , NULL ) ;
}
}
@ -2800,7 +2799,7 @@ void on_config_update(GtkWidget *, main_window *widgets){
void on_user_sync_with_config ( GtkWidget * , main_window * widgets ) {
void on_user_sync_with_config ( GtkWidget * , main_window * widgets ) {
int active = gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) ;
int active = gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) ;
switch ( active ) {
switch ( active ) {
case 2 :
case 2 : {
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > liststore1 ) ;
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > liststore1 ) ;
GtkTreeIter iter ;
GtkTreeIter iter ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > SystemTree ) ) , & model , & iter ) ) {
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > SystemTree ) ) , & model , & iter ) ) {
@ -2819,40 +2818,59 @@ void on_user_sync_with_config(GtkWidget *,main_window *widgets){
if ( yon_confirmation_dialog_call ( widgets - > Window , & data ) ! = GTK_RESPONSE_ACCEPT ) {
if ( yon_confirmation_dialog_call ( widgets - > Window , & data ) ! = GTK_RESPONSE_ACCEPT ) {
return ;
return ;
}
}
int size ;
int user_size ;
config_str passwd_users = yon_file_open ( users_path , & size ) ;
int shadow_size ;
int active_usr = yon_char_parsed_strstr ( passwd_users , size , target ) ;
config_str user = yon_config_load ( yon_debug_output ( " %s \n " , get_system_user_command ( target ) ) , & user_size ) ;
int cur_size ;
if ( user_size > 0 ) {
if ( size ) {
yon_char_remove_last_symbol ( user [ 0 ] , ' \n ' ) ;
yon_char_remove_last_symbol ( passwd_users [ active_usr ] , ' \n ' ) ;
free ( yon_char_divide_search ( user [ 0 ] , " = " , - 1 ) ) ;
config_str cur_user = yon_char_parse ( passwd_users [ active_usr ] , & cur_size , " : " ) ;
yon_char_remove_brackets ( user [ 0 ] ) ;
int final_size = 0 ;
char * user_command = yon_config_parameter_prepare_command ( dull_parameter_get_command , NULL , " users " , USERADD ( target ) ) ;
config_str final_user_parsed = NULL ;
yon_config_register ( USERADD ( target ) , user_command , user [ 0 ] ) ;
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 ] ) ;
config_str shadow = yon_config_load ( yon_debug_output ( " %s \n " , get_system_shadow_command ( target ) ) , & shadow_size ) ;
yon_char_parsed_add_or_create_if_exists ( final_user_parsed , & final_size , " x " ) ;
if ( shadow_size > 0 ) {
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_remove_last_symbol ( shadow [ 0 ] , ' \n ' ) ;
yon_char_parsed_add_or_create_if_exists ( final_user_parsed , & final_size , extra_groups ) ;
free ( yon_char_divide_search ( shadow [ 0 ] , " = " , - 1 ) ) ;
yon_char_parsed_add_or_create_if_exists ( final_user_parsed , & final_size , cur_user [ 1 ] ) ;
yon_char_remove_brackets ( shadow [ 0 ] ) ;
char * final_user = yon_char_parsed_to_string ( final_user_parsed , final_size , " : " ) ;
char * shadow_command = yon_config_parameter_prepare_command ( dull_parameter_get_command , NULL , " users " , USERSHADOW ( target ) ) ;
if ( config ( USERADD ( target ) ) ) {
yon_config_register ( USERSHADOW ( target ) , shadow_command , shadow [ 0 ] ) ;
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_file_open(shadow_path,&shadow_size);
}
}
}
}
yon_interface_update ( ( main_window * ) widgets ) ;
yon_interface_update ( ( main_window * ) widgets ) ;
break ;
} break ;
case 3 :
case 3 : {
break ;
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > liststore1 ) ;
GtkTreeIter iter ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > SystemGroupsTree ) ) , & model , & iter ) ) {
char * target ;
gtk_tree_model_get ( model , & iter , 1 , & target , - 1 ) ;
dialog_confirmation_data data ;
if ( config ( USERADD ( target ) ) ) {
data . action_text = SYSTEM_GROUP_SYNC_CONFIRMATION_LABEL ( target ) ;
data . data = NULL ;
data . function = NULL ;
} else {
data . action_text = SYSTEM_GROUP_ADD_CONFIRMATION_LABEL ( target ) ;
data . data = NULL ;
data . function = NULL ;
}
if ( yon_confirmation_dialog_call ( widgets - > Window , & data ) ! = GTK_RESPONSE_ACCEPT ) {
return ;
}
int group_size ;
config_str group = yon_config_load ( get_system_group_command ( target ) , & group_size ) ;
if ( group_size > 0 ) {
yon_char_remove_last_symbol ( group [ 0 ] , ' \n ' ) ;
free ( yon_char_divide_search ( group [ 0 ] , " = " , - 1 ) ) ;
yon_char_remove_brackets ( group [ 0 ] ) ;
char * group_command = yon_config_parameter_prepare_command ( dull_parameter_get_command , NULL , " users " , USERADD ( target ) ) ;
yon_config_register ( GROUPADD ( target ) , group_command , group [ 0 ] ) ;
}
}
} break ;
}
}
}
}