|
|
|
|
@ -606,19 +606,15 @@ ubl_settings_usergroups_password_window *yon_ubl_settings_usergroups_password_ne
|
|
|
|
|
return window;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_mode_changed(GtkWidget *self, ubl_settings_usergroups_system_window *window){
|
|
|
|
|
if (window->show_all==0){
|
|
|
|
|
window->show_all=1;
|
|
|
|
|
} else {
|
|
|
|
|
window->show_all=0;
|
|
|
|
|
}
|
|
|
|
|
void yon_system_load(ubl_settings_usergroups_system_window *window){
|
|
|
|
|
gtk_list_store_clear(window->liststore1);
|
|
|
|
|
gtk_list_store_clear(window->liststore2);
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
for (int i=0;i<main_config.groups_size;i++){
|
|
|
|
|
int parsed_size;
|
|
|
|
|
if (main_config.groups[i][strlen(main_config.groups[i])-1]=='\n') main_config.groups[i][strlen(main_config.groups[i])-1]='\0';
|
|
|
|
|
config_str parsed = yon_char_parse(main_config.groups[i],&parsed_size,":");
|
|
|
|
|
if ((atoi(parsed[2])>=main_config.MINUID&&atoi(parsed[2])<=main_config.MAXUID)||window->show_all==1){
|
|
|
|
|
if (atoi(parsed[2])>=main_config.MINGID&&atoi(parsed[2])<=main_config.MAXGID){
|
|
|
|
|
gtk_list_store_append(window->liststore2,&iter);
|
|
|
|
|
gtk_list_store_set(window->liststore2,&iter,0,atol(parsed[2]),1,parsed[0],2,parsed[3],-1);
|
|
|
|
|
}
|
|
|
|
|
@ -645,6 +641,29 @@ void on_mode_changed(GtkWidget *self, ubl_settings_usergroups_system_window *win
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parsed,parsed_size);
|
|
|
|
|
}
|
|
|
|
|
int shadow_size;
|
|
|
|
|
config_str shadow = yon_file_open(shadow_path,&shadow_size);
|
|
|
|
|
for (int i=0;i<shadow_size;i++){
|
|
|
|
|
if (shadow[i][strlen(shadow[i])-1]=='\n') shadow[i][strlen(shadow[i])-1]='\0';
|
|
|
|
|
int parsed_size=0;
|
|
|
|
|
config_str parsed = yon_char_parse(shadow[i],&parsed_size,":");
|
|
|
|
|
if (yon_gtk_list_store_find_text(window->liststore1,&iter,3,parsed[0])){
|
|
|
|
|
GDateTime *date = g_date_time_new_from_unix_local(atol(parsed[2]));
|
|
|
|
|
char *date_string;
|
|
|
|
|
date_string = g_date_time_format(date,"%c");
|
|
|
|
|
|
|
|
|
|
gtk_list_store_set(window->liststore1,&iter,8,parsed_size>2?date_string:"",9,parsed_size>7?parsed[7]:"",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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_mode_changed(GtkWidget *self, ubl_settings_usergroups_system_window *window){
|
|
|
|
|
if (window->show_all==0){
|
|
|
|
|
window->show_all=1;
|
|
|
|
|
} else {
|
|
|
|
|
window->show_all=0;
|
|
|
|
|
}
|
|
|
|
|
yon_system_load(window);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_system_update(GtkWidget *self, ubl_settings_usergroups_system_window *window){
|
|
|
|
|
@ -674,39 +693,7 @@ void on_system_update(GtkWidget *self, ubl_settings_usergroups_system_window *wi
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(login_defs,login_size);
|
|
|
|
|
gtk_list_store_clear(window->liststore1);
|
|
|
|
|
gtk_list_store_clear(window->liststore2);
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
for (int i=0;i<main_config.groups_size;i++){
|
|
|
|
|
int parsed_size;
|
|
|
|
|
config_str parsed = yon_char_parse(main_config.groups[i],&parsed_size,":");
|
|
|
|
|
if ((atoi(parsed[2])>=main_config.MINUID&&atoi(parsed[2])<=main_config.MAXUID)||window->show_all==1){
|
|
|
|
|
gtk_list_store_append(window->liststore2,&iter);
|
|
|
|
|
gtk_list_store_set(window->liststore2,&iter,0,atol(parsed[2]),1,parsed[0],2,parsed[3],-1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
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 ((atoi(parsed[2])>=main_config.MINUID&&atoi(parsed[2])<=main_config.MAXUID)||window->show_all==1){
|
|
|
|
|
char *groups_string="";
|
|
|
|
|
char *main_group_name="";
|
|
|
|
|
for (int j=0;j<main_config.groups_size;j++){
|
|
|
|
|
int parsed_gr_size;
|
|
|
|
|
config_str parsed_group = yon_char_parse(main_config.groups[j],&parsed_gr_size,":");
|
|
|
|
|
if (atol(parsed[2])==atol(parsed_group[2])){
|
|
|
|
|
main_group_name=yon_char_new(parsed_group[0]);
|
|
|
|
|
}
|
|
|
|
|
if (strstr(parsed_group[3],parsed[0])){
|
|
|
|
|
groups_string = yon_char_unite(groups_string,!yon_char_is_empty(groups_string)?",":"",parsed_group[0],NULL);
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parsed_group,parsed_gr_size);
|
|
|
|
|
}
|
|
|
|
|
gtk_list_store_append(window->liststore1,&iter);
|
|
|
|
|
gtk_list_store_set(window->liststore1,&iter,1,atol(parsed[2]),2,parsed[0],3,parsed[0],4,main_group_name,5,groups_string,6,parsed[5],-1);
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parsed,parsed_size);
|
|
|
|
|
}
|
|
|
|
|
yon_system_load(window);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ubl_settings_usergroups_system_window *yon_ubl_settings_usergroups_system_new(){
|
|
|
|
|
@ -718,42 +705,13 @@ ubl_settings_usergroups_system_window *yon_ubl_settings_usergroups_system_new(){
|
|
|
|
|
window->ToggleAllButton=yon_gtk_builder_get_widget(builder,"ToggleAllButton");
|
|
|
|
|
window->UpdateButton=yon_gtk_builder_get_widget(builder,"UpdateButton");
|
|
|
|
|
window->show_all=0;
|
|
|
|
|
|
|
|
|
|
gtk_window_set_title(GTK_WINDOW(window->MonitorWindow),INSPECTOR_TITLE_LABEL);
|
|
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(window->ToggleAllButton),"clicked",G_CALLBACK(on_mode_changed),window);
|
|
|
|
|
g_signal_connect(G_OBJECT(window->UpdateButton),"clicked",G_CALLBACK(on_system_update),window);
|
|
|
|
|
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
for (int i=0;i<main_config.groups_size;i++){
|
|
|
|
|
int parsed_size;
|
|
|
|
|
if (main_config.groups[i][strlen(main_config.groups[i])-1]=='\n') main_config.groups[i][strlen(main_config.groups[i])-1]='\0';
|
|
|
|
|
config_str parsed = yon_char_parse(main_config.groups[i],&parsed_size,":");
|
|
|
|
|
if (atoi(parsed[2])>=main_config.MINGID&&atoi(parsed[2])<=main_config.MAXGID){
|
|
|
|
|
gtk_list_store_append(window->liststore2,&iter);
|
|
|
|
|
gtk_list_store_set(window->liststore2,&iter,0,atol(parsed[2]),1,parsed[0],2,parsed[3],-1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
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 (atoi(parsed[2])>=main_config.MINUID&&atoi(parsed[2])<=main_config.MAXUID){
|
|
|
|
|
char *groups_string="";
|
|
|
|
|
char *main_group_name="";
|
|
|
|
|
for (int j=0;j<main_config.groups_size;j++){
|
|
|
|
|
int parsed_gr_size;
|
|
|
|
|
config_str parsed_group = yon_char_parse(main_config.groups[j],&parsed_gr_size,":");
|
|
|
|
|
if (atol(parsed[2])==atol(parsed_group[2])){
|
|
|
|
|
main_group_name=yon_char_new(parsed_group[0]);
|
|
|
|
|
}
|
|
|
|
|
if (strstr(parsed_group[3],parsed[0])){
|
|
|
|
|
groups_string = yon_char_unite(groups_string,!yon_char_is_empty(groups_string)?",":"",parsed_group[0],NULL);
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parsed_group,parsed_gr_size);
|
|
|
|
|
}
|
|
|
|
|
gtk_list_store_append(window->liststore1,&iter);
|
|
|
|
|
gtk_list_store_set(window->liststore1,&iter,1,atol(parsed[2]),2,parsed[0],3,parsed[0],4,main_group_name,5,groups_string,6,parsed[5],-1);
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(parsed,parsed_size);
|
|
|
|
|
}
|
|
|
|
|
yon_system_load(window);
|
|
|
|
|
return window;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|