|
|
|
|
@ -1280,29 +1280,33 @@ void on_user_choose(GtkWidget *self, GtkEntry *target){
|
|
|
|
|
|
|
|
|
|
void on_GID_update(GtkWidget *self, ubl_settings_usergroups_group_creation_window *window){
|
|
|
|
|
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck))){
|
|
|
|
|
int config_size=0;
|
|
|
|
|
int final_size=0;
|
|
|
|
|
config_str config_groups = yon_config_get_all_by_key(GROUPADD_parameter,&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=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))?0:main_config.MINGID;
|
|
|
|
|
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.MINGID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))){
|
|
|
|
|
if (atol(parsed[2])>main_config.MAXGID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck)))
|
|
|
|
|
break;
|
|
|
|
|
if (atol(parsed[2])==prev_busy+1)
|
|
|
|
|
prev_busy=atol(parsed[2]);
|
|
|
|
|
else {
|
|
|
|
|
if (window->last_gid){
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),window->last_gid);
|
|
|
|
|
} else {
|
|
|
|
|
int config_size=0;
|
|
|
|
|
int final_size=0;
|
|
|
|
|
config_str config_groups = yon_config_get_all_by_key(GROUPADD_parameter,&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=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))?0:main_config.MINGID;
|
|
|
|
|
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.MINGID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck))){
|
|
|
|
|
if (atol(parsed[2])>main_config.MAXGID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SystemGroupCheck)))
|
|
|
|
|
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);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1));
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parsed, parsed_size);
|
|
|
|
|
}
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1));
|
|
|
|
|
} else {
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),"");
|
|
|
|
|
}
|
|
|
|
|
@ -1458,6 +1462,7 @@ ubl_settings_usergroups_group_creation_window *yon_ubl_settings_usergroups_group
|
|
|
|
|
window->AdminGroupsButton=yon_gtk_builder_get_widget(builder,"AdminGroupsButton");
|
|
|
|
|
window->GroupaddShutdownCheck=yon_gtk_builder_get_widget(builder,"GroupaddShutdownCheck");
|
|
|
|
|
window->groupExtraOptionsEntry=yon_gtk_builder_get_widget(builder,"groupExtraOptionsEntry");
|
|
|
|
|
window->last_gid=NULL;
|
|
|
|
|
|
|
|
|
|
gtk_window_set_title(GTK_WINDOW(window->CreateGroupWindow),GROUPS_TITLE_LABEL);
|
|
|
|
|
|
|
|
|
|
@ -1841,29 +1846,33 @@ void on_user_shell_changed(GtkWidget *self, ubl_settings_usergroups_user_window
|
|
|
|
|
|
|
|
|
|
void on_UID_update(GtkWidget *self, ubl_settings_usergroups_user_window *window){
|
|
|
|
|
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck))){
|
|
|
|
|
int config_size=0;
|
|
|
|
|
int final_size=0;
|
|
|
|
|
config_str config_users = yon_config_get_all_by_key(USERADD_SEARCH_macro,&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=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck))?0:main_config.MINGID;
|
|
|
|
|
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||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck))){
|
|
|
|
|
if (atol(parsed[2])>main_config.MAXUID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck)))
|
|
|
|
|
break;
|
|
|
|
|
if (atol(parsed[2])==prev_busy+1)
|
|
|
|
|
prev_busy=atol(parsed[2]);
|
|
|
|
|
else {
|
|
|
|
|
if (window->last_uid){
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),window->last_uid);
|
|
|
|
|
} else {
|
|
|
|
|
int config_size=0;
|
|
|
|
|
int final_size=0;
|
|
|
|
|
config_str config_users = yon_config_get_all_by_key(USERADD_SEARCH_macro,&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=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck))?0:main_config.MINGID;
|
|
|
|
|
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||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck))){
|
|
|
|
|
if (atol(parsed[2])>main_config.MAXUID||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->userCreateSystemCheck)))
|
|
|
|
|
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);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1));
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parsed, parsed_size);
|
|
|
|
|
}
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),yon_char_from_long(prev_busy+1));
|
|
|
|
|
} else {
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),"");
|
|
|
|
|
}
|
|
|
|
|
@ -2378,6 +2387,7 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){
|
|
|
|
|
window->UsershadowShutdownCheck=yon_gtk_builder_get_widget(builder,"UsershadowShutdownCheck");
|
|
|
|
|
window->userTitleNameLabel=yon_gtk_builder_get_widget(builder,"userTitleNameLabel");
|
|
|
|
|
window->expiration_unix=NULL;
|
|
|
|
|
window->last_uid=NULL;
|
|
|
|
|
|
|
|
|
|
time_t t = time(NULL);
|
|
|
|
|
struct tm tm = *localtime(&t);
|
|
|
|
|
@ -2523,8 +2533,11 @@ void on_main_edit(GtkWidget *self, main_window *widgets){
|
|
|
|
|
if (parsed_size>2){
|
|
|
|
|
if (!strcmp(parameters[2],"x"))
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userGroupsCheck),1);
|
|
|
|
|
else
|
|
|
|
|
else {
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userGroupsEntry), parsed_size>2?parameters[2]:"");
|
|
|
|
|
if (!yon_char_is_empty(parameters[2]))
|
|
|
|
|
window->last_uid=yon_char_new(parameters[2]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (parsed_size>3){
|
|
|
|
|
if (strcmp(parameters[3],"x")){
|
|
|
|
|
@ -2652,6 +2665,7 @@ void on_main_edit(GtkWidget *self, main_window *widgets){
|
|
|
|
|
if (strcmp(parsed[1],"")&&strcmp(parsed[1],"x")){
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(window->userUIDEntry),parsed[1]);
|
|
|
|
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->userUIDAutoCheck),0);
|
|
|
|
|
window->last_gid=yon_char_new(parsed[1]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (size>2&&!yon_char_is_empty(parsed[2])){
|
|
|
|
|
|