|
|
|
@ -211,7 +211,7 @@ void on_additional_settings_clicked(GtkWidget *self, GtkEntry *output_target){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_expiration_clicked(GtkWidget *self, GtkEntry *output_target){
|
|
|
|
void on_expiration_clicked(GtkWidget *self, GtkEntry *output_target){
|
|
|
|
|
|
|
|
// gtk_popover_popdown();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// standard functions
|
|
|
|
// standard functions
|
|
|
|
@ -303,7 +303,6 @@ ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_
|
|
|
|
return window;
|
|
|
|
return window;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void on_ubl_settings_usergroups_additional_settings_open(GtkWidget *self, main_window *widgets){
|
|
|
|
void on_ubl_settings_usergroups_additional_settings_open(GtkWidget *self, main_window *widgets){
|
|
|
|
ubl_settings_usergroups_additional_settings_window *window = yon_ubl_settings_usergroups_additional_settings_new();
|
|
|
|
ubl_settings_usergroups_additional_settings_window *window = yon_ubl_settings_usergroups_additional_settings_new();
|
|
|
|
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
|
|
|
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
|
|
|
@ -424,7 +423,6 @@ ubl_settings_usergroups_group_creation_window *yon_ubl_settings_usergroups_group
|
|
|
|
return window;
|
|
|
|
return window;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void on_group_clicked(GtkCellRenderer *self, char *path, ubl_settings_usergroups_group_window *window){
|
|
|
|
void on_group_clicked(GtkCellRenderer *self, char *path, ubl_settings_usergroups_group_window *window){
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
gboolean status;
|
|
|
|
gboolean status;
|
|
|
|
@ -512,7 +510,6 @@ void on_standard_groups_open(GtkWidget *self, main_window *widgets){
|
|
|
|
gtk_widget_show(window->GroupsWindow);
|
|
|
|
gtk_widget_show(window->GroupsWindow);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void on_password_show_hide(GtkEntry *self, GtkEntryIconPosition icon_pos, GdkEvent* event){
|
|
|
|
void on_password_show_hide(GtkEntry *self, GtkEntryIconPosition icon_pos, GdkEvent* event){
|
|
|
|
if (icon_pos == GTK_ENTRY_ICON_SECONDARY){
|
|
|
|
if (icon_pos == GTK_ENTRY_ICON_SECONDARY){
|
|
|
|
int visible = gtk_entry_get_visibility(self);
|
|
|
|
int visible = gtk_entry_get_visibility(self);
|
|
|
|
@ -591,7 +588,108 @@ ubl_settings_usergroups_password_window *yon_ubl_settings_usergroups_password_ne
|
|
|
|
return window;
|
|
|
|
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;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void on_system_update(GtkWidget *self, ubl_settings_usergroups_system_window *window){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
main_config.groups = yon_file_open(groups_path,&main_config.groups_size);
|
|
|
|
|
|
|
|
main_config.users = yon_file_open(users_path,&main_config.users_size);
|
|
|
|
|
|
|
|
int login_size;
|
|
|
|
|
|
|
|
config_str login_defs = yon_file_open(uid_path,&login_size);
|
|
|
|
|
|
|
|
for (int i=0;i<login_size;i++){
|
|
|
|
|
|
|
|
if (login_defs[i][0]!='#'){
|
|
|
|
|
|
|
|
char *copy = yon_char_new(login_defs[i]);
|
|
|
|
|
|
|
|
char *divided = yon_char_divide(copy,7);
|
|
|
|
|
|
|
|
if (divided){
|
|
|
|
|
|
|
|
if (!strcmp(divided,"UID_MAX")){
|
|
|
|
|
|
|
|
main_config.MAXUID = atol(strstr(login_defs[i],"\t"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (!strcmp(divided,"UID_MIN")){
|
|
|
|
|
|
|
|
main_config.MINUID = atol(strstr(login_defs[i],"\t"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (!strcmp(divided,"GID_MAX")){
|
|
|
|
|
|
|
|
main_config.MAXGID = atol(strstr(login_defs[i],"\t"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (!strcmp(divided,"GID_MIN")){
|
|
|
|
|
|
|
|
main_config.MINGID = atol(strstr(login_defs[i],"\t"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ubl_settings_usergroups_system_window *yon_ubl_settings_usergroups_system_new(){
|
|
|
|
ubl_settings_usergroups_system_window *yon_ubl_settings_usergroups_system_new(){
|
|
|
|
ubl_settings_usergroups_system_window *window = malloc(sizeof(ubl_settings_usergroups_system_window));
|
|
|
|
ubl_settings_usergroups_system_window *window = malloc(sizeof(ubl_settings_usergroups_system_window));
|
|
|
|
@ -599,14 +697,50 @@ ubl_settings_usergroups_system_window *yon_ubl_settings_usergroups_system_new(){
|
|
|
|
window->liststore1=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
|
|
|
|
window->liststore1=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
|
|
|
|
window->liststore2=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore2"));
|
|
|
|
window->liststore2=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore2"));
|
|
|
|
window->MonitorWindow=yon_gtk_builder_get_widget(builder,"MonitorWindow");
|
|
|
|
window->MonitorWindow=yon_gtk_builder_get_widget(builder,"MonitorWindow");
|
|
|
|
window->SettingsBar=yon_gtk_builder_get_widget(builder,"SettingsBar");
|
|
|
|
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);
|
|
|
|
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);
|
|
|
|
|
|
|
|
}
|
|
|
|
return window;
|
|
|
|
return window;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_settings_usergroups_system_open(GtkWidget *self, main_window *widgets){
|
|
|
|
void on_settings_usergroups_system_open(GtkWidget *self, main_window *widgets){
|
|
|
|
ubl_settings_usergroups_system_window *window = yon_ubl_settings_usergroups_system_new();
|
|
|
|
ubl_settings_usergroups_system_window *window = yon_ubl_settings_usergroups_system_new();
|
|
|
|
|
|
|
|
|
|
|
|
gtk_window_set_transient_for(GTK_WINDOW(window->MonitorWindow),GTK_WINDOW(widgets->Window));
|
|
|
|
gtk_window_set_transient_for(GTK_WINDOW(window->MonitorWindow),GTK_WINDOW(widgets->Window));
|
|
|
|
gtk_widget_show(window->MonitorWindow);
|
|
|
|
gtk_widget_show(window->MonitorWindow);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -1068,8 +1202,32 @@ void config_init(){
|
|
|
|
main_config.groups_size=0;
|
|
|
|
main_config.groups_size=0;
|
|
|
|
main_config.load_mode=1;
|
|
|
|
main_config.load_mode=1;
|
|
|
|
main_config.groups = yon_file_open(groups_path,&main_config.groups_size);
|
|
|
|
main_config.groups = yon_file_open(groups_path,&main_config.groups_size);
|
|
|
|
|
|
|
|
main_config.users = yon_file_open(users_path,&main_config.users_size);
|
|
|
|
main_config.users_list=NULL;
|
|
|
|
main_config.users_list=NULL;
|
|
|
|
main_config.groups_list=NULL;
|
|
|
|
main_config.groups_list=NULL;
|
|
|
|
|
|
|
|
int login_size;
|
|
|
|
|
|
|
|
config_str login_defs = yon_file_open(uid_path,&login_size);
|
|
|
|
|
|
|
|
for (int i=0;i<login_size;i++){
|
|
|
|
|
|
|
|
if (login_defs[i][0]!='#'){
|
|
|
|
|
|
|
|
char *copy = yon_char_new(login_defs[i]);
|
|
|
|
|
|
|
|
char *divided = yon_char_divide(copy,7);
|
|
|
|
|
|
|
|
if (divided){
|
|
|
|
|
|
|
|
if (!strcmp(divided,"UID_MAX")){
|
|
|
|
|
|
|
|
main_config.MAXUID = atol(strstr(login_defs[i],"\t"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (!strcmp(divided,"UID_MIN")){
|
|
|
|
|
|
|
|
main_config.MINUID = atol(strstr(login_defs[i],"\t"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (!strcmp(divided,"GID_MAX")){
|
|
|
|
|
|
|
|
main_config.MAXGID = atol(strstr(login_defs[i],"\t"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (!strcmp(divided,"GID_MIN")){
|
|
|
|
|
|
|
|
main_config.MINGID = atol(strstr(login_defs[i],"\t"));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
yon_char_parsed_free(login_defs,login_size);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**yon_main_window_complete(main_window *widgets)
|
|
|
|
/**yon_main_window_complete(main_window *widgets)
|
|
|
|
|