#include #include #include "ubl-utils.h" #include #include #include #include #include #include #include #include "../compile/ubl-cmake.h" #ifdef WEBKIT_FOUND #include #endif #include "ubl-strings.h" #define WIKI_LINK "https://wiki.ublinux.ru/ru/Программное_обеспечение/Программы_и_утилиты/Все/ubl-settings-usergroups" #define _(String) gettext(String) #define glade_path "/com/ublinux/ui/ubl-settings-usergroups.glade" #define glade_user_path "/com/ublinux/ui/ubl-settings-usergroups-user.glade" #define glade_groups_path "/com/ublinux/ui/ubl-settings-usergroups-group.glade" #define banner_path "/com/ublinux/images/ubl-settings-usergroups-banner.png" #define CssPath "/com/ublinux/css/ubl-settings-usergroups.css" #define config_path yon_char_unite("/home/",yon_ubl_root_user_get(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL) #define yon_col(mean) yon_char_append(mean,":") #define LocalePath "/usr/share/locale" #define LocaleName "ubl-settings-usergroups" typedef char* string; string version_application; char *local; typedef struct { int always_open_documentation; int win_pos_x; int win_pos_y; int win_width; int win_height; int socket_id; int load_socket_id; int save_socket_id; int lock_help; int lock_save_local; int lock_save_global; int lock_load_global; // Custom char *default_groups; char *default_user_name; char *default_password; char *root_password; int hash_alg; gboolean is_1000_administrator; struct groups_config *default_groups_config; GtkListStore *usersListStore; } config; typedef struct { GtkWidget *Window; GtkWidget *HatLabel; GtkWidget *PlugBox; GtkWidget *HeadOverlay; GtkWidget *HeadImage; GtkWidget *HeadBox; GtkWidget *HeadTitleLabel; GtkWidget *HeadInfoLabel; GtkWidget *StatusBox; GtkWidget *StatusIcon; GtkWidget *StatusLabel; GtkWidget *SaveLabel; GtkWidget *SaveMenuItem; GtkWidget *SaveGlobalMenuItem; GtkWidget *SaveLocalMenuItem; GtkWidget *RightBox; GtkWidget *LoadLabel; GtkWidget *LoadGlobalMenuItem; GtkWidget *LoadLocalMenuItem; GtkWidget *LeftBox; GtkWidget *DocumentationMenuItem; GtkWidget *AboutMenuItem; // Custom GtkWidget *MainAddUserButton; GtkWidget *MainEditUserButton; GtkWidget *MainDeleteUserButton; GtkWidget *MainEditGroupsButton; GtkWidget *MainDefaultGroupsEntry; GtkWidget *MainDefaultUserNameEntry; GtkWidget *MainDefaultUserAdministratorCheck; GtkWidget *MainDefaultPasswordEntry; GtkWidget *MainRootPasswordEntry; GtkWidget *MainPasswordHashCombo; GtkWidget *MainUserTree; } main_window; typedef struct { gboolean adm; gboolean audio; gboolean autologin; gboolean avahi; gboolean bin; gboolean brlapi; gboolean britty; gboolean bumblbee; gboolean chrony; gboolean clamav; gboolean cockpit_ws; gboolean cockpit_wsinstance; gboolean colord; } groups_config; typedef struct { GtkWidget *Window; GtkWidget *HatText; GtkWidget *HeaderText; GtkWidget *InfoText; GtkWidget *AlwaysOpenCheck; GtkWidget *CloseButton; GtkWidget *AcceptButton; } documentation_confirmation_window; typedef struct { GtkWidget *Window; GtkWidget *GroupsCancelButton; GtkWidget *GroupsOkButton; GtkWidget *GroupsAdmCheck; GtkWidget *GroupsAudioCheck; GtkWidget *GroupsAutologinCheck; GtkWidget *GroupsAvahiCheck; GtkWidget *GroupsBinCheck; GtkWidget *GroupsBrlapiCheck; GtkWidget *GroupsBrittyCheck; GtkWidget *GroupsBumblbeeCheck; GtkWidget *GroupsChronyCheck; GtkWidget *GroupsClamavCheck; GtkWidget *GroupsCockpitWsCheck; GtkWidget *GroupsCockpitWsinstanceCheck; GtkWidget *GroupsColordCheck; } groups_window; typedef struct { int uid; gboolean uid_default; char *username; char *login; char *password; gboolean password_default; char *main_group; struct groups_config *additional_groups; int password_hash; gboolean sync_SAMBA; char *extra_options; } user_config; typedef struct { GtkWidget *Window; GtkWidget *UserAdditionalGroupsButton; GtkWidget *UserCancelButton; GtkWidget *UserOkButton; GtkWidget *UserUIDAutoCheck; GtkWidget *UserUIDEntry; GtkWidget *userUserNameEntry; GtkWidget *userLoginEntry; GtkWidget *userPasswordDefaultCheck; GtkWidget *userPasswordEntry; GtkWidget *userGroupsEntry; GtkWidget *userPasswordHashAlgorithmCombo; GtkWidget *userSyncSAMBACheck; GtkWidget *userExtraOptionsEntry; } user_window; main_window *setup_window();