|
|
|
|
@ -383,6 +383,7 @@ void on_group_save(GtkWidget *self, dictionary *dict){
|
|
|
|
|
if (yon_char_is_empty(gid)){
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -390,12 +391,14 @@ void on_group_save(GtkWidget *self, dictionary *dict){
|
|
|
|
|
if (yon_char_is_empty(group_name)){
|
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
yon_ubl_status_highlight_incorrect(window->userLoginEntry);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
group_users = (char*)gtk_entry_get_text(GTK_ENTRY(window->userGroupsEntry));
|
|
|
|
|
if (yon_char_is_empty(group_users)){
|
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
yon_ubl_status_highlight_incorrect(window->userGroupsEntry);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int non_unique_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UnuniqueGIDCheck));
|
|
|
|
|
@ -412,6 +415,7 @@ void on_group_save(GtkWidget *self, dictionary *dict){
|
|
|
|
|
if (yon_char_is_empty(password)){
|
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
yon_ubl_status_highlight_incorrect(window->PasswordEntry);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
final_string = yon_char_unite(yon_char_return_if_exist(group_users,"x"),
|
|
|
|
|
":",yon_char_return_if_exist(gid,"x"),
|
|
|
|
|
@ -449,6 +453,30 @@ ubl_settings_usergroups_group_creation_window *yon_ubl_settings_usergroups_group
|
|
|
|
|
window->userTitleNameLabel=yon_gtk_builder_get_widget(builder,"userTitleNameLabel");
|
|
|
|
|
|
|
|
|
|
gtk_window_set_title(GTK_WINDOW(window->CreateGroupWindow),GROUPS_TITLE_LABEL);
|
|
|
|
|
|
|
|
|
|
int config_size=0;
|
|
|
|
|
int final_size=0;
|
|
|
|
|
config_str config_groups = yon_config_get_all_by_key("GROUPADD",&config_size);
|
|
|
|
|
yon_char_parsed_prepend_strings(config_groups,config_size,":");
|
|
|
|
|
config_str final = yon_char_parsed_merge(main_config.groups,main_config.groups_size,config_groups,config_size,&final_size);
|
|
|
|
|
long prev_busy=main_config.MINUID;
|
|
|
|
|
for (int i=0;i<final_size;i++){
|
|
|
|
|
int parsed_size;
|
|
|
|
|
config_str parsed = yon_char_parse(final[i],&parsed_size,":");
|
|
|
|
|
|
|
|
|
|
if (atol(parsed[2])>=main_config.MINUID){
|
|
|
|
|
if (atol(parsed[2])>main_config.MAXUID)
|
|
|
|
|
break;
|
|
|
|
|
if (atol(parsed[2])==prev_busy+1)
|
|
|
|
|
prev_busy=atol(parsed[2]);
|
|
|
|
|
else {
|
|
|
|
|
yon_char_parsed_free(parsed, parsed_size);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parsed, parsed_size);
|
|
|
|
|
}
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1));
|
|
|
|
|
dictionary *entry_dict=NULL;
|
|
|
|
|
yon_dictionary_add_or_create_if_exists_with_data(entry_dict,"combo",window->PasswordCombo);
|
|
|
|
|
yon_dictionary_add_or_create_if_exists_with_data(entry_dict,"entry",window->PasswordEntry);
|
|
|
|
|
@ -1049,7 +1077,30 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){
|
|
|
|
|
window->UsershadowBootCheck=yon_gtk_builder_get_widget(builder,"UsershadowBootCheck");
|
|
|
|
|
window->UsershadowShutdownCheck=yon_gtk_builder_get_widget(builder,"UsershadowShutdownCheck");
|
|
|
|
|
window->userTitleNameLabel=yon_gtk_builder_get_widget(builder,"userTitleNameLabel");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int config_size=0;
|
|
|
|
|
int final_size=0;
|
|
|
|
|
config_str config_users = yon_config_get_all_by_key("USERADD",&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);
|
|
|
|
|
long prev_busy=main_config.MINUID;
|
|
|
|
|
for (int i=0;i<final_size;i++){
|
|
|
|
|
int parsed_size;
|
|
|
|
|
config_str parsed = yon_char_parse(final[i],&parsed_size,":");
|
|
|
|
|
|
|
|
|
|
if (atol(parsed[2])>=main_config.MINUID){
|
|
|
|
|
if (atol(parsed[2])>main_config.MAXUID)
|
|
|
|
|
break;
|
|
|
|
|
if (atol(parsed[2])==prev_busy+1)
|
|
|
|
|
prev_busy=atol(parsed[2]);
|
|
|
|
|
else {
|
|
|
|
|
yon_char_parsed_free(parsed, parsed_size);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parsed, parsed_size);
|
|
|
|
|
}
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1));
|
|
|
|
|
int shell_size=0;
|
|
|
|
|
config_str shells = yon_file_open(shell_list_path,&shell_size);
|
|
|
|
|
for (int i=1;i<shell_size;i++){
|
|
|
|
|
|