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");
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){
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);
active_size++;
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;
}
}
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);
free(parameter);
return 1;
@ -76,6 +80,7 @@ int yon_user_save(yon_user_struct *user){
void on_user_add(GtkWidget *,main_window *widgets){
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);
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);
}
void yon_user_admin_check(GtkWidget *, yon_user_struct *user){
main_window *widgets = g_object_get_data(G_OBJECT(user->MainBox),"widgets");
void yon_user_admin_check(GtkWidget *self, main_window *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 *iter;
for(iter=list;iter;iter=iter->next){
if (iter->data!=user->MainBox){
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);
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");
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));
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->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);
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);
if (!users_size){
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);
gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0);
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++){
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);
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);
if (parsed_size>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])){
gtk_entry_set_text(GTK_ENTRY(user->PasswordEntry),parsed[5]);
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 finish_parameter "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_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_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_local_only_parameters ""
@ -302,7 +304,7 @@ layout && /description:/ {\
#define languages_command "while IFS= read -ru3 SELECT_LOCALE; do SELECT_LOCALE=\"${SELECT_LOCALE% *}\"; [[ $(< /usr/share/i18n/locales/${SELECT_LOCALE%.*}) =~ (\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"country_name\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"lang_name\"[[:blank:]]*\\\"([^\\\"]*)\\\")|(\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"lang_name\"[[:blank:]]*\\\"([^\\\"]*)\\\")|(\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\") ]] && echo \"${SELECT_LOCALE}|${BASH_REMATCH[2]}${BASH_REMATCH[7]}${BASH_REMATCH[11]}${BASH_REMATCH[5]:+ (${BASH_REMATCH[5]})}${BASH_REMATCH[9]:+ (${BASH_REMATCH[9]})}|${BASH_REMATCH[3]}${BASH_REMATCH[8]}${BASH_REMATCH[12]}${BASH_REMATCH[4]:+ (${BASH_REMATCH[4]})}\" || echo \"${SELECT_LOCALE}\"; done 3< \"/usr/share/i18n/SUPPORTED\""
#define get_package_info_command(target) yon_char_unite("pacman -Si ", target,"| sed 's/ */ /g'",NULL)
#define get_package_info_command(target) yon_char_unite("pacman -Si ", target, "| sed 's/ */ /g'", NULL)
#define layouts_command "sed -En '/^! layout$/,/^ *$/!d;s/[[:blank:]]+([^ ]+)[[:blank:]]+(.*)/\\1|\\2/p' /usr/share/X11/xkb/rules/evdev.lst"
#define layouts_variant_command "sed -En '/^! variant$/,/^ *$/!d;s/[[:blank:]]+([^ ]+)[[:blank:]]+([^ :]+):[[:blank:]]+(.*)/\\2|\\1|\\3/p' /usr/share/X11/xkb/rules/evdev.lst"
@ -310,14 +312,14 @@ layout && /description:/ {\
#define install_common_parameters \
AUTOINSTALL_TYPE_INSTALL, \
device_parameter, \
device_parameter, \
part_format_parameter, \
part_label_parameter, \
part_fs_type_parameter
#define install_part_parameters \
AUTOINSTALL_TYPE_INSTALL, \
device_parameter, \
device_parameter, \
part_format_parameter, \
part_fs_label_parameter, \
part_parameter, \
@ -326,7 +328,7 @@ layout && /description:/ {\
#define install_next_parameters \
AUTOINSTALL_TYPE_INSTALL, \
device_parameter, \
device_parameter, \
part_format_parameter, \
part_fs_label_parameter, \
part_parameter, \
@ -335,7 +337,7 @@ layout && /description:/ {\
#define install_advanced_parameters \
AUTOINSTALL_TYPE_INSTALL, \
device_parameter, \
device_parameter, \
part_format_parameter, \
part_label_parameter, \
part_parameter, \
@ -344,12 +346,12 @@ layout && /description:/ {\
#define install_grub_install_update_parameters \
AUTOINSTALL_TYPE_INSTALL, \
device_parameter, \
device_parameter, \
part_parameter
#define install_system_only_parameters \
AUTOINSTALL_TYPE_INSTALL, \
device_parameter, \
device_parameter, \
part_format_parameter, \
part_label_parameter, \
part_parameter, \
@ -359,7 +361,7 @@ layout && /description:/ {\
#define install_userdata_only_parameters \
AUTOINSTALL_TYPE_INSTALL, \
device_parameter, \
device_parameter, \
part_format_parameter, \
part_label_parameter, \
part_parameter, \
@ -525,7 +527,6 @@ typedef struct
GtkListStore *RegionTimezoneCompletionList;
GtkTreeModelFilter *RegionTimezoneCompletionFilter;
GtkWidget *InstallationRadio;
GtkWidget *InstallationNearRadio;
GtkWidget *InstallationLinuxRadio;
@ -950,7 +951,7 @@ typedef struct
GtkWidget *ArrowImage;
yon_menu_window *window;
char *name;
char *id;
int children;
@ -1489,9 +1490,9 @@ int yon_startup_app_save(main_window *widgets);
void yon_on_about(GtkWidget *, main_window *);
void on_gparted_update(GtkWidget *, main_window *widgets);
void yon_menu_open_submenu(yon_menu_window *window, yon_menu_item *item);
yon_menu_item *yon_menu_add_item(yon_menu_window *target_menu,const char *id, const char *name, int children);
yon_menu_item *yon_menu_add_item(yon_menu_window *target_menu, const char *id, const char *name, int children);
void yon_menu_ungrab(yon_menu_window *window);
void on_menu_chosen(GtkWidget *, GtkListBoxRow* row, yon_menu_window *window);
void on_menu_chosen(GtkWidget *, GtkListBoxRow *row, yon_menu_window *window);
gboolean yon_locale_window_load(language_window *window);
void yon_os_password_open(GtkWidget *, main_window *widgets);
void yon_userdata_password_open(GtkWidget *, main_window *widgets);
@ -1499,15 +1500,15 @@ double yon_password_check_func(yon_password_window *window, const char *password
void yon_source_update(source_window *window);
void yon_main_window_update_locale(main_window *widgets);
gboolean yon_progress_bar_start(main_window *widgets);
void *yon_progress_file_buzyfy(void*);
void *yon_progress_file_buzyfy(void *);
void yon_startup_language_init();
gboolean on_languages_search_func(GtkTreeModel *model, gint col,const char *key, GtkTreeIter *iter, main_window *widgets);
gboolean on_languages_search_func(GtkTreeModel *model, gint col, const char *key, GtkTreeIter *iter, main_window *widgets);
void yon_update_translation(main_window *widgets);
void yon_translation_init(GtkBuilder *builder);
void yon_licence_load(main_window *widgets);
void on_network_removed(GtkWidget *,network_info *info);
void on_network_removed(GtkWidget *, network_info *info);
char *yon_bootloader_get_os_name(char *parameter);
gboolean on_region_refilter(GtkTreeModel* model, GtkTreeIter* iter, main_window *widgets);
gboolean on_region_refilter(GtkTreeModel *model, GtkTreeIter *iter, main_window *widgets);
void on_region_entry_changed(GtkWidget *, main_window *widgets);
char *yon_size_get_name_from_letter(char letter);
void yon_map_status_hide(main_window *widgets);
@ -1527,7 +1528,7 @@ config_str yon_os_components_get_modules(int *size);
int yon_os_components_check_packages_size(GtkWidget *, main_window *widgets);
void on_pacman_search_enter(GtkEntry *self, main_window *widgets);
gboolean yon_log_scroll(log_window *window);
gboolean on_log_window_exit(GtkWidget *,GdkEvent*, log_window *window);
gboolean on_log_window_exit(GtkWidget *, GdkEvent *, log_window *window);
void yon_modules_missed_func(main_window *widgets);
void yon_scroll_block_for_builder(GtkBuilder *builder);
void yon_advanced_device_choose(main_window *widgets, const char *device);
@ -1544,14 +1545,14 @@ void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets);
void on_advanced_part_create(GtkWidget *self, main_window *widgets);
int yon_advanced_part_select_for_data(advanced_part_data *data, main_window *widgets);
int yon_advanced_part_check_count(main_window *widgets);
advanced_part_widgets *yon_advanced_part_get_for_name(const char *part_name,main_window *widgets);
advanced_part_widgets *yon_advanced_part_get_for_name(const char *part_name, main_window *widgets);
void yon_advanced_part_create_for_part(GtkTreeIter *iter, main_window *widgets);
int yon_advanced_part_get_pos(advanced_part_widgets *part, main_window *widgets);
int yon_advanced_part_get_size(advanced_part_widgets *part, main_window *widgets);
void yon_advanced_part_update_from_data(advanced_part_widgets *part, advanced_part_data *data);
void yon_advanced_part_data_unref(advanced_part_data *data);
void on_advanced_part_content_changed(GtkWidget *, GtkWidget *, main_window *widgets);
gboolean on_keyboard_search_func(GtkTreeModel *model, gint ,const char *key, GtkTreeIter *iter, main_window *);
gboolean on_keyboard_search_func(GtkTreeModel *model, gint, const char *key, GtkTreeIter *iter, main_window *);
void yon_update_part_sections(main_window *widgets);
void on_advanced_part_toggled(GtkWidget *self);
void yon_advanced_part_save(main_window *widgets);
@ -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_remove_for_part(const char *part_name, 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