|
|
#include <gtk/gtk.h>
|
|
|
#include <gtk/gtkx.h>
|
|
|
#include <locale.h>
|
|
|
#include <stdio.h>
|
|
|
#include <unistd.h>
|
|
|
#include <stdlib.h>
|
|
|
#include <libintl.h>
|
|
|
#include <getopt.h>
|
|
|
#include <libintl.h>
|
|
|
#include <ubl-utils.h>
|
|
|
#include <ublsettings-ui.h>
|
|
|
#include "../compile/ubl-cmake.h"
|
|
|
#ifdef WEBKIT_FOUND
|
|
|
#include <webkit2/webkit2.h>
|
|
|
#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_path_ubl_settings_usergroups_additional_settings "/com/ublinux/ui/ubl-settings-usergroups-additional-settings.glade"
|
|
|
#define glade_path_ubl_settings_usergroups_group_creation "/com/ublinux/ui/ubl-settings-usergroups-group-creation.glade"
|
|
|
#define glade_path_ubl_settings_usergroups_group "/com/ublinux/ui/ubl-settings-usergroups-group.glade"
|
|
|
#define glade_path_ubl_settings_usergroups_password "/com/ublinux/ui/ubl-settings-usergroups-password.glade"
|
|
|
#define glade_path_ubl_settings_usergroups_system "/com/ublinux/ui/ubl-settings-usergroups-system.glade"
|
|
|
#define glade_path_ubl_settings_usergroups_user "/com/ublinux/ui/ubl-settings-usergroups-user.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(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
|
|
|
|
|
|
#define LocalePath "/usr/share/locale"
|
|
|
#define LocaleName "ubl-settings-usergroups"
|
|
|
|
|
|
#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"
|
|
|
|
|
|
typedef char* string;
|
|
|
string version_application;
|
|
|
|
|
|
char *local;
|
|
|
|
|
|
typedef struct {
|
|
|
// Standard config. DO NOT EDIT - MUST BE SAME AS ublsettings-ui's template_config STRUCT {
|
|
|
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;
|
|
|
|
|
|
int always_open_documentation;
|
|
|
// } Standard config. DO NOT EDIT - MUST BE SAME AS ublsettings-ui's template_config STRUCT
|
|
|
// Type custom parameters below: :
|
|
|
GtkListStore *usersListStore;
|
|
|
GtkListStore *groupsListStore;
|
|
|
|
|
|
} config;
|
|
|
|
|
|
typedef struct {
|
|
|
// Standard widgets. DO NOT EDIT - MUST BE SAME AS ublsettings-ui's template_main_window STRUCT {
|
|
|
GtkWidget *Window;
|
|
|
GtkWidget *HeadLabel;
|
|
|
GtkWidget *PlugBox;
|
|
|
|
|
|
GtkWidget *HeadOverlay;
|
|
|
GtkWidget *HeadImage;
|
|
|
GtkWidget *HeadBox;
|
|
|
GtkWidget *HeadTitleLabel;
|
|
|
GtkWidget *HeadInfoLabel;
|
|
|
|
|
|
GtkWidget *StatusBox;
|
|
|
GtkWidget *StatusIcon;
|
|
|
GtkWidget *StatusLabel;
|
|
|
|
|
|
GtkWidget *SaveMenuItem;
|
|
|
GtkWidget *SaveGlobalMenuItem;
|
|
|
GtkWidget *SaveLocalMenuItem;
|
|
|
GtkWidget *RightBox;
|
|
|
|
|
|
GtkWidget *LoadGlobalMenuItem;
|
|
|
GtkWidget *LoadLocalMenuItem;
|
|
|
GtkWidget *LeftBox;
|
|
|
|
|
|
GtkWidget *DocumentationMenuItem;
|
|
|
GtkWidget *AboutMenuItem;
|
|
|
|
|
|
GtkWidget *InterfaceBox;
|
|
|
// } Standard widgets. DO NOT EDIT - MUST BE SAME AS ublsettings-ui's template_main_window STRUCT
|
|
|
// Type custom parameters below:
|
|
|
GtkListStore *CacheAlgList;
|
|
|
GtkListStore *GroupsList;
|
|
|
GtkListStore *UsersList;
|
|
|
GtkWidget *button1;
|
|
|
GtkWidget *button2;
|
|
|
GtkWidget *button3;
|
|
|
GtkWidget *AddButton;
|
|
|
GtkWidget *EditButton;
|
|
|
GtkWidget *DeleteButton;
|
|
|
GtkWidget *UpdateButton;
|
|
|
GtkWidget *UsersTree;
|
|
|
GtkWidget *GroupsTree;
|
|
|
GtkWidget *MainNotebook;
|
|
|
|
|
|
} main_window;
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
GtkWidget *Window;
|
|
|
|
|
|
GtkWidget *AlwaysOpenCheck;
|
|
|
|
|
|
GtkWidget *CloseButton;
|
|
|
GtkWidget *AcceptButton;
|
|
|
} documentation_confirmation_window;
|
|
|
|
|
|
typedef struct{
|
|
|
GtkWidget *Window;
|
|
|
GtkWidget *StatusBox;
|
|
|
GtkWidget *DefaultUserNameEntry;
|
|
|
GtkWidget *DefaultUserAdministratorCheck;
|
|
|
GtkWidget *DefaultPasswordCombo;
|
|
|
GtkWidget *DefaultPasswordEntry;
|
|
|
GtkWidget *RootPasswordCombo;
|
|
|
GtkWidget *RootPasswordEntry;
|
|
|
GtkWidget *PasswordHashCombo;
|
|
|
GtkWidget *CancelButton;
|
|
|
GtkWidget *AcceptButton;
|
|
|
} ubl_settings_usergroups_additional_settings_window;
|
|
|
|
|
|
typedef struct{
|
|
|
GtkWidget *CreateGroupWindow;
|
|
|
GtkWidget *StatusBox;
|
|
|
GtkWidget *userUIDAutoCheck;
|
|
|
GtkWidget *userUIDEntry;
|
|
|
GtkWidget *userLoginEntry;
|
|
|
GtkWidget *userGroupsEntry;
|
|
|
GtkWidget *UserAdditionalGroupsButton;
|
|
|
GtkWidget *UserCancelButton;
|
|
|
GtkWidget *UserOkButton;
|
|
|
GtkWidget *AdditionalGroupsButton;
|
|
|
GtkWidget *UnuniqueGIDCheck;
|
|
|
GtkWidget *SystemGroupCheck;
|
|
|
GtkWidget *PasswordCombo;
|
|
|
GtkWidget *PasswordEntry;
|
|
|
GtkWidget *ChangePasswordButton;
|
|
|
} ubl_settings_usergroups_group_creation_window;
|
|
|
|
|
|
typedef struct{
|
|
|
GtkWidget *groupsAdmGroupCheck;
|
|
|
GtkWidget *groupsAudioGroupCheck;
|
|
|
GtkWidget *groupsAutologinGroupCheck;
|
|
|
GtkWidget *groupsAvahiGroupCheck;
|
|
|
GtkWidget *groupsBinGroupCheck;
|
|
|
GtkWidget *groupsBrlapiGroupCheck;
|
|
|
GtkWidget *groupsBrittyGroupCheck;
|
|
|
GtkWidget *groupsBumblbeeGroupCheck;
|
|
|
GtkWidget *groupsChronyGroupCheck;
|
|
|
GtkWidget *groupsClamavGroupCheck;
|
|
|
GtkWidget *groupsCockpitWsGroupCheck;
|
|
|
GtkWidget *groupsCockpitWsinstanceGroupCheck;
|
|
|
GtkWidget *groupsColordGroupCheck;
|
|
|
GtkWidget *GroupsWindow;
|
|
|
GtkWidget *GroupsTree;
|
|
|
GtkWidget *GroupsCancelButton;
|
|
|
GtkWidget *GroupsOkButton;
|
|
|
} ubl_settings_usergroups_group_window;
|
|
|
|
|
|
typedef struct{
|
|
|
GtkWidget *CreateGroupWindow;
|
|
|
GtkWidget *StatusBox;
|
|
|
GtkWidget *UserCancelButton;
|
|
|
GtkWidget *UserOkButton;
|
|
|
} ubl_settings_usergroups_password_window;
|
|
|
|
|
|
typedef struct{
|
|
|
GtkListStore *liststore1;
|
|
|
GtkListStore *liststore2;
|
|
|
GtkWidget *MonitorWindow;
|
|
|
GtkWidget *SettingsBar;
|
|
|
} ubl_settings_usergroups_system_window;
|
|
|
|
|
|
typedef struct{
|
|
|
GtkWidget *CreateUserWindow;
|
|
|
GtkWidget *StatusBox;
|
|
|
GtkWidget *userUIDAutoCheck;
|
|
|
GtkWidget *userUIDEntry;
|
|
|
GtkWidget *userLoginEntry;
|
|
|
GtkWidget *userPasswordCombo;
|
|
|
GtkWidget *userPasswordEntry;
|
|
|
GtkWidget *userPasswordButton;
|
|
|
GtkWidget *userUserNameEntry;
|
|
|
GtkWidget *userGroupsCheck;
|
|
|
GtkWidget *userGroupsEntry;
|
|
|
GtkWidget *UserGroupsButton;
|
|
|
GtkWidget *userAdditionalGroupsEntry;
|
|
|
GtkWidget *userAdditionalGroupsButton;
|
|
|
GtkWidget *userPasswordChangedEntry;
|
|
|
GtkWidget *userPasswordExpirationEntry;
|
|
|
GtkWidget *userPasswordExpirationButton;
|
|
|
GtkWidget *userPasswordChangeDelayMinimumSpin;
|
|
|
GtkWidget *userPasswordChangeDelayMaximumSpin;
|
|
|
GtkWidget *userWarningSpin;
|
|
|
GtkWidget *userActivitySpin;
|
|
|
GtkWidget *userForceChangeCheck;
|
|
|
GtkWidget *userShellCombo;
|
|
|
GtkWidget *userShellEntry;
|
|
|
GtkWidget *userHomeCombo;
|
|
|
GtkWidget *userHomeEntry;
|
|
|
GtkWidget *userHomeButton;
|
|
|
GtkWidget *userCreateSystemCheck;
|
|
|
GtkWidget *userCreateUnuniqueCheck;
|
|
|
GtkWidget *userDontCheckCheck;
|
|
|
GtkWidget *userSyncSAMBACheck;
|
|
|
GtkWidget *userDeactivatedCheck;
|
|
|
GtkWidget *userExtraOptionsEntry;
|
|
|
GtkWidget *UserCancelButton;
|
|
|
GtkWidget *UserOkButton;
|
|
|
} ubl_settings_usergroups_user_window;
|
|
|
|
|
|
|
|
|
ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_additional_settings_new();
|
|
|
|
|
|
void on_ubl_settings_usergroups_additional_settings_open(GtkWidget *self, main_window *widgets);
|
|
|
|
|
|
ubl_settings_usergroups_group_creation_window *yon_ubl_settings_usergroups_group_creation_new();
|
|
|
|
|
|
ubl_settings_usergroups_group_window *yon_ubl_settings_usergroups_group_new();
|
|
|
|
|
|
void on_standard_groups_open(GtkWidget *self, main_window *widgets);
|
|
|
|
|
|
ubl_settings_usergroups_password_window *yon_ubl_settings_usergroups_password_new();
|
|
|
|
|
|
ubl_settings_usergroups_system_window *yon_ubl_settings_usergroups_system_new();
|
|
|
|
|
|
void on_settings_usergroups_system_open(GtkWidget *self, main_window *widgets);
|
|
|
|
|
|
ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(); |