Added configuration mode only if app was launched without root

pull/80/head
parent bd6aa4f96e
commit 19c97f4cce

@ -854,8 +854,33 @@ void config_init(){
main_config.exit_accepted=0;
}
void on_configuration_mode_switch(GtkWidget *self);
void on_configuration_mode_switch(GtkWidget *self){
void on_root_get_root(char *argline);
void on_root_get_root(char *argline){
yon_launch(argline);
}
void on_configuration_mode_switch(GtkWidget *self,main_window *widgets);
void on_configuration_mode_switch(GtkWidget *self,main_window *widgets){
if (getuid()) {
if (main_config.configure_mode==1){
char *argline = LocaleName;
for (int i=1;i<main_config.arg_size;i++){
if (!strcmp(main_config.arg_target[i],"socket-id")||!strcmp(main_config.arg_target[i],"socket-ext-id")||!strcmp(main_config.arg_target[i],"socket-trd-id")){ i++;
continue;
}
char *temp = yon_char_unite(argline," ", main_config.arg_target[i],NULL);
if(strcmp(argline,"")&&strcmp(argline,LocaleName))
free(argline);
argline=temp;
}
if (getuid()!=0){
argline = yon_char_unite("setsid /usr/bin/bash -c 'pkexec ",argline,"'; exit",NULL);
pthread_t thread_id;
pthread_create(&thread_id, NULL, (void *)on_root_get_root,argline);
gtk_widget_destroy(widgets->MainWindow);
}
}
}
main_config.configure_mode = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(self));
}
@ -2568,6 +2593,9 @@ main_window *yon_main_window_complete(){
gtk_widget_set_sensitive(widgets->SaveLocalConfigurationMenuItem,0);
gtk_widget_set_sensitive(widgets->SaveGlobalLocalConfigurationMenuItem,0);
}
if (getuid()){
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widgets->ConfigurationModeMenuItem),1);
}
gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter),0);
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
@ -2794,6 +2822,8 @@ int main(int argc, char *argv[]){
exit(0);
}
}
main_config.arg_size=argc;
main_config.arg_target=argv;
if (getuid()!=0){
main_config.lock_load_global=1;

@ -35,9 +35,9 @@
#define LocalePath "/usr/share/locale"
#define LocaleName "ubinstall-gtk"
#define clear_config_both_command "pkexec bash -c 'ubconfig remove TEMP_SECTION TEMP_PATAMETER '"
#define clear_config_global_command "pkexec bash -c 'ubconfig --target global remove TEMP_SECTION TEMP_PATAMETER '"
#define clear_config_local_command "pkexec bash -c 'ubconfig --target system remove TEMP_SECTION TEMP_PATAMETER '"
#define clear_config_both_command "ubconfig remove TEMP_SECTION TEMP_PATAMETER"
#define clear_config_global_command "ubconfig --target global remove TEMP_SECTION TEMP_PATAMETER"
#define clear_config_local_command "ubconfig --target system remove TEMP_SECTION TEMP_PATAMETER"
#define regions_path "/com/ublinux/images/map-time-zone.png"
#define keyboard_path "/com/ublinux/images/keyboard.png"
@ -215,6 +215,9 @@ typedef struct {
int exit_accepted;
GMutex progress_mutex;
GMutex install_mutex;
int arg_size;
config_str arg_target;
} config;
typedef struct {

Loading…
Cancel
Save