|
|
|
|
@ -149,6 +149,37 @@ void on_homedir_changed(GtkComboBox *self, GtkWidget *target){
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_home_changed(GtkWidget *self,ubl_settings_usergroups_user_window *window){
|
|
|
|
|
const char *homepath = gtk_entry_get_text(GTK_ENTRY(self));
|
|
|
|
|
if (yon_char_is_empty(homepath)) return;
|
|
|
|
|
char *home_parameter = yon_char_unite("--home-dir ",homepath,NULL);
|
|
|
|
|
int size;
|
|
|
|
|
config_str parameters = yon_config_get_all_by_key(USERADD_SEARCH_macro,&size);
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
int parsed_size;
|
|
|
|
|
config_str parsed = yon_char_parse(parameters[i],&parsed_size,":");
|
|
|
|
|
if (strstr(parsed[4],home_parameter)){
|
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),HOMEDIR_USED_LABEL,5,BACKGROUND_IMAGE_INFO_TYPE);
|
|
|
|
|
yon_ubl_status_highlight_incorrect(window->userHomeEntry);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parsed,parsed_size);
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parameters,size);
|
|
|
|
|
|
|
|
|
|
for (int i=0;i<main_config.users_size; i++){
|
|
|
|
|
int parsed_size;
|
|
|
|
|
config_str parsed = yon_char_parse(main_config.users[i],&parsed_size,":");
|
|
|
|
|
if (strstr(parsed[5],homepath)){
|
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),HOMEDIR_USED_LABEL,5,BACKGROUND_IMAGE_INFO_TYPE);
|
|
|
|
|
yon_ubl_status_highlight_incorrect(window->userHomeEntry);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parsed,parsed_size);
|
|
|
|
|
}
|
|
|
|
|
free(home_parameter);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
@ -263,6 +294,7 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){
|
|
|
|
|
g_signal_connect(G_OBJECT(window->userPasswordCombo),"changed",G_CALLBACK(on_toggle_button_set_active_from_combo_box),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->userPasswordEntry),"changed",G_CALLBACK(on_password_user_changed),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->userHomeEntry),"changed",G_CALLBACK(on_parameter_changed),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->userHomeEntry),"changed",G_CALLBACK(on_home_changed),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->userHomeCombo),"changed",G_CALLBACK(on_parameter_changed),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->userShellCombo),"changed",G_CALLBACK(on_parameter_changed),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->userShellEntry),"changed",G_CALLBACK(on_parameter_changed),window);
|
|
|
|
|
@ -335,6 +367,7 @@ void on_user_login_update(GtkWidget *, ubl_settings_usergroups_user_window *wind
|
|
|
|
|
void on_user_save(GtkWidget *self, dictionary *dict){
|
|
|
|
|
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
|
|
|
|
|
ubl_settings_usergroups_user_window *window = yon_dictionary_get_data(dict->first->next,ubl_settings_usergroups_user_window*);
|
|
|
|
|
yon_ubl_status_box_despawn(GTK_CONTAINER(window->StatusBox));
|
|
|
|
|
char *final_user="";
|
|
|
|
|
char *uid_string = NULL;
|
|
|
|
|
char *password = NULL;
|
|
|
|
|
|