Added user's administrator check

pull/287/head
parent 4d7d13b5b8
commit e20eaccf7a

@ -16,9 +16,7 @@ int yon_kernel_save(main_window *widgets){
kernel_row *row = g_object_get_data(G_OBJECT(iter->data),"kernel_row"); kernel_row *row = g_object_get_data(G_OBJECT(iter->data),"kernel_row");
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){
char *append_str = yon_char_replace(row->modules," ",","); char *append_str = yon_char_replace(row->modules," ",",");
if (!yon_char_check_elements(config_val,append_str,",")){
yon_config_append_element(packages_parameter,append_str,","); yon_config_append_element(packages_parameter,append_str,",");
}
free(append_str); free(append_str);
active_size++; active_size++;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->EnableRadio))){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->EnableRadio))){

@ -68,7 +68,11 @@ int yon_user_save(yon_user_struct *user){
return 0; return 0;
} }
} }
char *parameter = yon_char_unite(yon_char_return_if_exist(name,""),":::::",yon_char_return_if_exist(password,""),NULL); char *admin_uid = NULL;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(user->AdminCheck))){
admin_uid = yon_config_get(admuid_parameter);
}
char *parameter = yon_char_unite(yon_char_return_if_exist(name,""),":",yon_char_return_if_exist(admin_uid,""),"::::",yon_char_return_if_exist(password,""),NULL);
yon_config_register(USERADD_parameter(login),USERADD_parameter_command(login),parameter); yon_config_register(USERADD_parameter(login),USERADD_parameter_command(login),parameter);
free(parameter); free(parameter);
return 1; return 1;
@ -76,6 +80,7 @@ int yon_user_save(yon_user_struct *user){
void on_user_add(GtkWidget *,main_window *widgets){ void on_user_add(GtkWidget *,main_window *widgets){
yon_user_struct *user = yon_user_struct_new(); yon_user_struct *user = yon_user_struct_new();
g_signal_connect(G_OBJECT(user->AdminCheck),"clicked",G_CALLBACK(yon_user_admin_check),widgets);
g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets); g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets);
gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0); gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0);
} }
@ -97,16 +102,16 @@ void yon_password_new(GtkWidget *, yon_user_struct *user){
yon_password_hash_list_set(window,NULL,NULL,0); yon_password_hash_list_set(window,NULL,NULL,0);
} }
void yon_user_admin_check(GtkWidget *, yon_user_struct *user){ void yon_user_admin_check(GtkWidget *self, main_window *widgets){
main_window *widgets = g_object_get_data(G_OBJECT(user->MainBox),"widgets"); yon_user_struct *user = g_object_get_data(G_OBJECT(self),"yon_user_struct");
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->UserAddBox)); GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->UserAddBox));
GList *iter; GList *iter;
for(iter=list;iter;iter=iter->next){ for(iter=list;iter;iter=iter->next){
if (iter->data!=user->MainBox){ if (iter->data!=user->MainBox){
yon_user_struct *cur_user = g_object_get_data(G_OBJECT(iter->data),"yon_user_struct"); yon_user_struct *cur_user = g_object_get_data(G_OBJECT(iter->data),"yon_user_struct");
g_signal_handlers_block_by_func(G_OBJECT(cur_user->AdminCheck),G_CALLBACK(yon_user_admin_check),cur_user); g_signal_handlers_block_by_func(G_OBJECT(cur_user->AdminCheck),G_CALLBACK(yon_user_admin_check),widgets);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cur_user->AdminCheck),0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cur_user->AdminCheck),0);
g_signal_handlers_unblock_by_func(G_OBJECT(cur_user->AdminCheck),G_CALLBACK(yon_user_admin_check),cur_user); g_signal_handlers_unblock_by_func(G_OBJECT(cur_user->AdminCheck),G_CALLBACK(yon_user_admin_check),widgets);
} }
} }
} }
@ -127,13 +132,13 @@ yon_user_struct *yon_user_struct_new(){
yon_gtk_entry_block_symbols(GTK_ENTRY(user->UsernameEntry),"[]'\":\n"); yon_gtk_entry_block_symbols(GTK_ENTRY(user->UsernameEntry),"[]'\":\n");
g_object_set_data(G_OBJECT(user->MainBox),"yon_user_struct",user); g_object_set_data(G_OBJECT(user->MainBox),"yon_user_struct",user);
g_object_set_data(G_OBJECT(user->AdminCheck),"yon_user_struct",user);
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(user->PasswordEntry)); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(user->PasswordEntry));
g_signal_connect(G_OBJECT(user->PasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),user->PasswordEntry); g_signal_connect(G_OBJECT(user->PasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),user->PasswordEntry);
g_signal_connect(G_OBJECT(user->PasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),user->PasswordButton); g_signal_connect(G_OBJECT(user->PasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),user->PasswordButton);
g_signal_connect(G_OBJECT(user->PasswordButton),"clicked",G_CALLBACK(yon_password_new),user); g_signal_connect(G_OBJECT(user->PasswordButton),"clicked",G_CALLBACK(yon_password_new),user);
g_signal_connect(G_OBJECT(user->AdminCheck),"clicked",G_CALLBACK(yon_user_admin_check),user);
g_signal_connect(G_OBJECT(user->RemoveButton),"clicked",G_CALLBACK(on_user_remove_clicked),user); g_signal_connect(G_OBJECT(user->RemoveButton),"clicked",G_CALLBACK(on_user_remove_clicked),user);
return user; return user;
} }
@ -169,6 +174,8 @@ void yon_user_init(main_window *widgets){
config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&users_size); config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&users_size);
if (!users_size){ if (!users_size){
yon_user_struct *user = yon_user_struct_new(); yon_user_struct *user = yon_user_struct_new();
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),1);
g_signal_connect(G_OBJECT(user->AdminCheck),"clicked",G_CALLBACK(yon_user_admin_check),widgets);
g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets); g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets);
gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0); gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0);
gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),ADMINISTRATOR_LABEL); gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),ADMINISTRATOR_LABEL);
@ -176,6 +183,7 @@ void yon_user_init(main_window *widgets){
} }
for (int i=0;i<users_size;i++){ for (int i=0;i<users_size;i++){
yon_user_struct *user = yon_user_struct_new(); yon_user_struct *user = yon_user_struct_new();
g_signal_connect(G_OBJECT(user->AdminCheck),"clicked",G_CALLBACK(yon_user_admin_check),widgets);
g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets); g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets);
gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0); gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0);
@ -190,6 +198,11 @@ void yon_user_init(main_window *widgets){
gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),login); gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),login);
if (parsed_size>0) if (parsed_size>0)
gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),parsed[0]); gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),parsed[0]);
if (parsed_size>1){
if (!yon_char_is_empty(parsed[1])){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),1);
}
}
if (parsed_size>5&&!yon_char_is_empty(parsed[5])){ if (parsed_size>5&&!yon_char_is_empty(parsed[5])){
gtk_entry_set_text(GTK_ENTRY(user->PasswordEntry),parsed[5]); gtk_entry_set_text(GTK_ENTRY(user->PasswordEntry),parsed[5]);
gtk_combo_box_set_active(GTK_COMBO_BOX(user->PasswordCombo),1); gtk_combo_box_set_active(GTK_COMBO_BOX(user->PasswordCombo),1);

@ -258,6 +258,8 @@ layout && /description:/ {\
#define source_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[source]" #define source_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[source]"
#define finish_parameter "AUTOINSTALL[finish]" #define finish_parameter "AUTOINSTALL[finish]"
#define finish_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[finish]" #define finish_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[finish]"
#define admuid_parameter "ADMUID"
#define admuid_parameter_command "ubconfig --source global get [users] ADMUID"
#define SYSTEM_LANG_parameter "AUTOINSTALL['ubconfig set [locale] LANG']" #define SYSTEM_LANG_parameter "AUTOINSTALL['ubconfig set [locale] LANG']"
#define SYSTEM_LANG_parameter_command "ubconfig --source global get autoinstall AUTOINSTALL['ubconfig set [locale] LANG']" #define SYSTEM_LANG_parameter_command "ubconfig --source global get autoinstall AUTOINSTALL['ubconfig set [locale] LANG']"
@ -291,7 +293,7 @@ layout && /description:/ {\
#define config_get_command(target) yon_char_unite("ubconfig -ea --conarg --source ", target, " get [autoinstall] AUTOINSTALL[*] -- get [locale] LANG", NULL) #define config_get_command(target) yon_char_unite("ubconfig -ea --conarg --source ", target, " get [autoinstall] AUTOINSTALL[*] -- get [locale] LANG", NULL)
#define config_get_default_command "ubconfig -ea --noconarg --source default get [autoinstall] AUTOINSTALL[*] -- get [locale] LANG" #define config_get_default_command "ubconfig -ea --noconarg --source default get [autoinstall] AUTOINSTALL[*] -- get [locale] LANG -- get [users] ADMUID"
#define config_get_global_only_parameters "" #define config_get_global_only_parameters ""
#define config_get_local_only_parameters "" #define config_get_local_only_parameters ""
@ -525,7 +527,6 @@ typedef struct
GtkListStore *RegionTimezoneCompletionList; GtkListStore *RegionTimezoneCompletionList;
GtkTreeModelFilter *RegionTimezoneCompletionFilter; GtkTreeModelFilter *RegionTimezoneCompletionFilter;
GtkWidget *InstallationRadio; GtkWidget *InstallationRadio;
GtkWidget *InstallationNearRadio; GtkWidget *InstallationNearRadio;
GtkWidget *InstallationLinuxRadio; GtkWidget *InstallationLinuxRadio;
@ -1560,4 +1561,4 @@ void yon_advanced_part_to_data(advanced_part_widgets *part, advanced_part_data *
void yon_advanced_part_save_part(advanced_part_data *data); void yon_advanced_part_save_part(advanced_part_data *data);
void yon_advanced_part_remove_for_part(const char *part_name, main_window *widgets); void yon_advanced_part_remove_for_part(const char *part_name, main_window *widgets);
int yon_software_check_packages_size(GtkWidget *, main_window *widgets); int yon_software_check_packages_size(GtkWidget *, main_window *widgets);
void yon_user_admin_check(GtkWidget *self, yon_user_struct *user); void yon_user_admin_check(GtkWidget *self, main_window *widgets);
Loading…
Cancel
Save