Merge pull request 'master' (#14) from YanTheKaller/ubl-settings-usergroups:master into master

Reviewed-on: #14
pull/83/head
Dmitry Razumov 2 years ago
commit bf8e7d0df0

@ -139,6 +139,8 @@ install: check uninstall
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "icons/com.ublinux.${PKGNAME}.accept-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "icons/com.ublinux.${PKGNAME}.accept-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "icons/com.ublinux.${PKGNAME}.cancel-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "icons/com.ublinux.${PKGNAME}.cancel-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "icons/com.ublinux.${PKGNAME}.profile-settings-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "icons/com.ublinux.${PKGNAME}.profile-settings-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv" "csv/hash_list.csv"
@install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv" "csv/shell_list.csv"
@install -Dm644 -t "${DESTDIR}/usr/share/polkit-1/actions/" "${CMAKE_BUILD_DIR}/com.ublinux.${PKGNAME}${PKGIDENT}.policy" @install -Dm644 -t "${DESTDIR}/usr/share/polkit-1/actions/" "${CMAKE_BUILD_DIR}/com.ublinux.${PKGNAME}${PKGIDENT}.policy"
@if [ -z ${DESTDIR} ]; then \ @if [ -z ${DESTDIR} ]; then \
[ -d "${DESTDIR}/usr/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}/usr/share/icons/hicolor/" &>/dev/null || true; \ [ -d "${DESTDIR}/usr/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}/usr/share/icons/hicolor/" &>/dev/null || true; \

@ -1,13 +1,15 @@
# ubl-ubl-settings-usergroups # ubl-settings-usergroups
# Выполнить # Выполнить
# Build # Build
In order to build ubl-ubl-settings-usergroups you will need: In order to build ubl-settings-usergroups you will need:
- CMake - CMake
- C compiler - C compiler
- GTK+ 3 & dependencies - GTK+ 3 & dependencies
- webkit2gtk - webkit2gtk
- [libublsettings-ui](https://gitea.ublinux.ru/Applications/libublsettings-ui) - [libublsettings](https://gitea.ublinux.ru/Applications/libublsettings)
- [libublsettings-gtk3](https://gitea.ublinux.ru/Applications/libublsettings-gtk3)
- [libublsettingsui-gtk3](https://gitea.ublinux.ru/Applications/libublsettingsui-gtk3)
Once you have all the necessary dependencies, you can use: Once you have all the necessary dependencies, you can use:
```sh ```sh

@ -0,0 +1,16 @@
hash_algoritm;hash_description
des
md5
yescrypt
gost-yescrypt;GOST-YESCRYPT (Конструкция согласно ГОСТ Р 34.11─2012)
scrypt
bf
bcrypt
bcrypt-a
sha512crypt;SHA512 (Хеш-функция из семейства алгоритмов SHA-2)
sha256crypt
!sunmd5
md5crypt
!bsdicrypt
descrypt
!nt
1 hash_algoritm;hash_description
2 des
3 md5
4 yescrypt
5 gost-yescrypt;GOST-YESCRYPT (Конструкция согласно ГОСТ Р 34.11─2012)
6 scrypt
7 bf
8 bcrypt
9 bcrypt-a
10 sha512crypt;SHA512 (Хеш-функция из семейства алгоритмов SHA-2)
11 sha256crypt
12 !sunmd5
13 md5crypt
14 !bsdicrypt
15 descrypt
16 !nt

@ -0,0 +1,10 @@
shell
/bin/bash
/bin/sh
/bin/ksh
/bin/csh
/bin/tcsh
/bin/dash
/usr/bin/nologin
/usr/bin/git-shell
/usr/bin/zsh
1 shell
2 /bin/bash
3 /bin/sh
4 /bin/ksh
5 /bin/csh
6 /bin/tcsh
7 /bin/dash
8 /usr/bin/nologin
9 /usr/bin/git-shell
10 /usr/bin/zsh

@ -8,26 +8,15 @@ include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS}) link_directories(${GTK_LIBRARY_DIRS})
add_definitions(${GTK_CFLAGS_OTHER}) add_definitions(${GTK_CFLAGS_OTHER})
pkg_check_modules(VTE291 REQUIRED vte-2.91)
include_directories(${VTE291_INCLUDE_DIRS})
link_directories(${VTE291_LIBRARY_DIRS})
add_definitions(${VTE291_CFLAGS_OTHER})
find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0) find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
option(WEBKIT_FOUND "No" OFF)
if(WEBKIT_LIBRARIES_FOUND) if(WEBKIT_LIBRARIES_FOUND)
option(WEBKIT_FOUND "Yes" ON)
PKG_CHECK_MODULES(WEBKIT REQUIRED webkit2gtk-4.0 webkit2gtk-web-extension-4.0) PKG_CHECK_MODULES(WEBKIT REQUIRED webkit2gtk-4.0 webkit2gtk-web-extension-4.0)
include_directories(${WEBKIT_INCLUDE_DIRS}) include_directories(${WEBKIT_INCLUDE_DIRS})
link_directories(${WEBKIT_LIBRARY_DIRS}) link_directories(${WEBKIT_LIBRARY_DIRS})
add_definitions(${WEBKIT_CFLAGS_OTHER}) add_definitions(${WEBKIT_CFLAGS_OTHER})
endif() endif()
configure_file(ubl-cmake.in ubl-cmake.h)
file(COPY ${CMAKE_CURRENT_BINARY_DIR}/ubl-cmake.h DESTINATION ./)
set(GRESOURCE_C resources.c) set(GRESOURCE_C resources.c)
set(GRESOURCE_XML gresource.xml) set(GRESOURCE_XML gresource.xml)
@ -79,20 +68,31 @@ set(SOURCE_FILES
ubl-settings-usergroups.c ubl-settings-usergroups.c
ubl-settings-usergroups.h ubl-settings-usergroups.h
ubl-strings.h ubl-strings.h
${CMAKE_CURRENT_BINARY_DIR}/ubl-cmake.h
) )
set(LIBRARIES set(LIBRARIES
${GTK_LIBRARIES} ${GTK_LIBRARIES}
${WEBKIT_LIBRARIES} ublsettings
${VTE291_LIBRARIES} ublsettings-gtk3
ubl-utils ublsettingsui-gtk3
ublsettings-ui
pthread) pthread)
add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}) add_executable(${PROJECT_NAME} ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C})
target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBRARIES}) target_link_libraries(${PROJECT_NAME} PUBLIC ${LIBRARIES})
list(FIND LIBRARIES "vte-2.91" VTE_FOUND_INDEX)
list(FIND LIBRARIES "webkit" WEBKIT_FOUND_INDEX)
if(NOT VTE_FOUND_INDEX EQUAL -1)
message(STATUS "Библиотека VTE не добавлена в target_link_libraries()")
add_definitions(-DVTE_INCLUDE)
endif()
if(NOT WEBKIT_FOUND_INDEX EQUAL -1)
add_definitions(-DWEBKIT_INCLUDE)
endif()
target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR}) target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR})
set_source_files_properties( set_source_files_properties(
${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C} ${CMAKE_CURRENT_BINARY_DIR}/${GRESOURCE_C}

File diff suppressed because it is too large Load Diff

@ -1,15 +1,15 @@
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include <gtk/gtkx.h> #include <gtk/gtkx.h>
#include <locale.h> #include <locale.h>
#include <stdio.h> #include <stdio.h>
#include <unistd.h> #include <unistd.h>
#include <stdlib.h> #include <stdlib.h>
#include <libintl.h> #include <getopt.h>
#include <getopt.h> #include <libintl.h>
#include <libintl.h> #include <limits.h>
#include <ubl-utils.h> #include <libublsettings.h>
#include <ublsettings-ui.h> #include <libublsettings-gtk3.h>
#include "../compile/ubl-cmake.h" #include <libublsettingsui-gtk3.h>
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h> #include <webkit2/webkit2.h>
#endif #endif
@ -32,12 +32,29 @@
#define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL) #define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
#define LocalePath "/usr/share/locale" #define LocalePath "/usr/share/locale"
#define LocaleName "ubl-settings-usergroups" #define LocaleName "ubl-settings-usergroups"
#define clear_config_both_command "ubconfig 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_global_command "ubconfig --target global remove TEMP_SECTION TEMP_PATAMETER"
#define clear_config_local_command "ubconfig --target system remove TEMP_SECTION TEMP_PATAMETER" #define clear_config_local_command "ubconfig --target system remove TEMP_SECTION TEMP_PATAMETER"
#define groups_path "/etc/group"
#define users_path "/etc/passwd"
#define shadow_path "/etc/shadow"
#define uid_path "/etc/login.defs"
#define password_limits_path "/etc/security/pwquiality.conf"
#define hash_list_path "/usr/share/ubl-settings-usergroups/csv/hash_list.csv"
#define shell_list_path "/usr/share/ubl-settings-usergroups/csv/shell_list.csv"
#define USERADD(user) yon_char_unite("USERADD[",user,"]",NULL)
#define GROUPADD(group) yon_char_unite("GROUPADD[",group,"]",NULL)
#define USERSHADOW(user) yon_char_unite("USERSHADOW[",user,"]",NULL)
#define USERADD_SYNC(user) yon_char_unite("USERADD_SYNC[",user,"]",NULL)
#define USERSHADOW_SYNC(user) yon_char_unite("USERSHADOW_SYNC[",user,"]",NULL)
#define password_hash_get_command(passwd) yon_char_append("mkpasswd2 ",passwd)
typedef char* string; typedef char* string;
string version_application; string version_application;
@ -45,20 +62,34 @@ char *local;
typedef struct { typedef struct {
// Standard config. DO NOT EDIT - MUST BE SAME AS ublsettings-ui's template_config STRUCT { // Standard config. DO NOT EDIT - MUST BE SAME AS ublsettings-ui's template_config STRUCT {
int socket_id; int socket_id;
int load_socket_id; int load_socket_id;
int save_socket_id; int save_socket_id;
int lock_help; int lock_help;
int lock_save_local; int lock_save_local;
int lock_save_global; int lock_save_global;
int lock_load_global; int lock_load_global;
int always_open_documentation; int load_mode;
int always_open_documentation;
// } Standard config. DO NOT EDIT - MUST BE SAME AS ublsettings-ui's template_config STRUCT // } Standard config. DO NOT EDIT - MUST BE SAME AS ublsettings-ui's template_config STRUCT
// Type custom parameters below: : // Type custom parameters below: :
GtkListStore *usersListStore; config_str groups;
GtkListStore *groupsListStore; int groups_size;
config_str users;
int users_size;
GtkListStore *users_list;
GtkListStore *groups_list;
int MAXUID;
int MINUID;
int MAXGID;
int MINGID;
int password_min_length;
} config; } config;
@ -126,8 +157,10 @@ typedef struct{
GtkWidget *DefaultUserAdministratorCheck; GtkWidget *DefaultUserAdministratorCheck;
GtkWidget *DefaultPasswordCombo; GtkWidget *DefaultPasswordCombo;
GtkWidget *DefaultPasswordEntry; GtkWidget *DefaultPasswordEntry;
GtkWidget *DefaultPasswordButton;
GtkWidget *RootPasswordCombo; GtkWidget *RootPasswordCombo;
GtkWidget *RootPasswordEntry; GtkWidget *RootPasswordEntry;
GtkWidget *RootPasswordButton;
GtkWidget *PasswordHashCombo; GtkWidget *PasswordHashCombo;
GtkWidget *CancelButton; GtkWidget *CancelButton;
GtkWidget *AcceptButton; GtkWidget *AcceptButton;
@ -149,26 +182,17 @@ typedef struct{
GtkWidget *PasswordCombo; GtkWidget *PasswordCombo;
GtkWidget *PasswordEntry; GtkWidget *PasswordEntry;
GtkWidget *ChangePasswordButton; GtkWidget *ChangePasswordButton;
GtkWidget *userTitleNameLabel;
} ubl_settings_usergroups_group_creation_window; } ubl_settings_usergroups_group_creation_window;
typedef struct{ 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 *GroupsWindow;
GtkWidget *GroupsTree; GtkWidget *GroupsTree;
GtkListStore *list;
GtkWidget *GroupsCancelButton; GtkWidget *GroupsCancelButton;
GtkWidget *GroupsOkButton; GtkWidget *GroupsOkButton;
GtkWidget *HeaderLabel;
GtkCellRenderer *StatusCell;
} ubl_settings_usergroups_group_window; } ubl_settings_usergroups_group_window;
typedef struct{ typedef struct{
@ -176,13 +200,21 @@ typedef struct{
GtkWidget *StatusBox; GtkWidget *StatusBox;
GtkWidget *UserCancelButton; GtkWidget *UserCancelButton;
GtkWidget *UserOkButton; GtkWidget *UserOkButton;
GtkWidget *PasswordEntry;
GtkWidget *RepeatPasswordEntry;
GtkWidget *PasswordHashEntry;
GtkWidget *HashBox;
GtkWidget *PasswordBox;
} ubl_settings_usergroups_password_window; } ubl_settings_usergroups_password_window;
typedef struct{ typedef struct{
GtkListStore *liststore1; GtkListStore *liststore1;
GtkListStore *liststore2; GtkListStore *liststore2;
GtkWidget *MonitorWindow; GtkWidget *MonitorWindow;
GtkWidget *SettingsBar; GtkWidget *ToggleAllButton;
GtkWidget *UpdateButton;
GtkWidget *SystemTree;
int show_all;
} ubl_settings_usergroups_system_window; } ubl_settings_usergroups_system_window;
typedef struct{ typedef struct{
@ -221,6 +253,17 @@ typedef struct{
GtkWidget *userExtraOptionsEntry; GtkWidget *userExtraOptionsEntry;
GtkWidget *UserCancelButton; GtkWidget *UserCancelButton;
GtkWidget *UserOkButton; GtkWidget *UserOkButton;
GtkWidget *CalendarPopup;
GtkWidget *ExpirationCalendar;
GtkWidget *UseraddBootCheck;
GtkWidget *UseraddShutdownCheck;
GtkWidget *UsershadowBootCheck;
GtkWidget *UsershadowShutdownCheck;
GtkWidget *userTitleNameLabel;
long expiration_unix;
char *old_password;
} ubl_settings_usergroups_user_window; } ubl_settings_usergroups_user_window;
@ -240,4 +283,6 @@ ubl_settings_usergroups_system_window *yon_ubl_settings_usergroups_system_new();
void on_settings_usergroups_system_open(GtkWidget *self, main_window *widgets); void on_settings_usergroups_system_open(GtkWidget *self, main_window *widgets);
ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(); ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new();
void on_password_accept(GtkWidget *self, dictionary *dict);

@ -1,5 +1,5 @@
#define VERSION_LABEL yon_char_unite(_("Version:")," ",version_application,"\n",NULL) #define VERSION_LABEL yon_char_unite(_("Version:")," ",!yon_char_is_empty(version_application)?version_application:"","\n",NULL)
#define HELP_LABEL yon_char_unite(_("ubl-settings-usergroups version:")," ", version_application,"\n",_("Users and groups"),"\n",_("Usage:"), " ubl-settings-usergroups ",_("[OPTIONS]"),"\n",_("Options:"),"\n\t--help, -h\t\t\t",_("Show this help"),"\n\t--version, -V\t\t\t",_("Show package version"),"\n\t--lock-help\t\t\t",_("Lock this help menu"),"\n\t--lock-save\t\t\t",_("Lock configuration saving"),"\n\t--lock-save-local\t\t",_("Lock local configration saving"),"\n\t--lock-save-global\t\t",_("Lock global configration saving"),"\n\t--lock-load-global\t\t",_("Lock global configration loading"),"\n",NULL) #define HELP_LABEL yon_char_unite(_("ubl-settings-usergroups version:")," ", !yon_char_is_empty(version_application)?version_application:"","\n",_("Users and groups"),"\n",_("Usage:"), " ubl-settings-usergroups ",_("[OPTIONS]"),"\n",_("Options:"),"\n\t--help, -h\t\t\t",_("Show this help"),"\n\t--version, -V\t\t\t",_("Show package version"),"\n\t--lock-help\t\t\t",_("Lock this help menu"),"\n\t--lock-save\t\t\t",_("Lock configuration saving"),"\n\t--lock-save-local\t\t",_("Lock local configration saving"),"\n\t--lock-save-global\t\t",_("Lock global configration saving"),"\n\t--lock-load-global\t\t",_("Lock global configration loading"),"\n\t--clear-config\t\t\t",_("Reset application settings"),"\n",NULL)
#define TITLE_LABEL _("Users and groups") #define TITLE_LABEL _("Users and groups")
#define TITLE_INFO_LABEL _("System users and groups configuration") #define TITLE_INFO_LABEL _("System users and groups configuration")
@ -16,8 +16,8 @@
#define PASSWORD_LABEL _("Password") #define PASSWORD_LABEL _("Password")
#define USER_NAME_LABEL _("User name") #define USER_NAME_LABEL _("User name")
#define UID_USER_LABEL _("UID:") #define UID_USER_LABEL _("User UID:")
#define USERNAME_USER_LABEL _("User name:") #define USERNAME_USER_LABEL _("User name (description):")
#define LOGIn_USER_LABEL _("Login:") #define LOGIn_USER_LABEL _("Login:")
#define PASSWORD_USER_LABEL _("Password:") #define PASSWORD_USER_LABEL _("Password:")
#define DEFAULT_USER_LABEL _("Default") #define DEFAULT_USER_LABEL _("Default")
@ -39,12 +39,24 @@
#define GROUPS_USERS_LABEL _("Group users") #define GROUPS_USERS_LABEL _("Group users")
#define GROUPS_LABEL _("Groups") #define GROUPS_LABEL _("Groups")
#define PASSWORD_TITLE_LABEL _("Password input")
#define FILECHOOSER_TITLE_LABEL _("File owerview")
#define INSPECT_SYSTEM_LABEL _("Inspect users and groups in system")
#define ADDITIONAL_SETTINGS_LABEL _("Additional settings")
#define SHARED_GROUPS_SETTINGS_LABEL _("Shared groups configuration")
#define CREATE_NEW_LABEL _("Create new")
#define EDIT_LABEL _("Edit")
#define REMOVE_LABEL _("Remove")
#define UPDATE_LABEL _("Update users and groups")
//ubl-settings-usergroups-additional-settings.glade //ubl-settings-usergroups-additional-settings.glade
#define ADDITIONAL_SETTINGS_TITLE_LABEL _("Additional settings")
#define NO_PASSWORD_LABEL _("No password required")
#define SET_PASSWORD_LABEL _("Set a password") #define SET_PASSWORD_LABEL _("Set a password")
#define ENDRYPTED_LABEL _("Endrypted password") #define ENDRYPTED_LABEL _("Endrypted password")
#define MD5_LABEL "md5" #define MD5_LABEL "md5"
#define YESCRYPT_LABEL "yescrypt" #define YESCRYPT_LABEL "yescrypt"
#define NO_PASSWORD_LABEL _("No password required")
#define SCRYPT_LABEL "scrypt" #define SCRYPT_LABEL "scrypt"
#define BF_LABEL "bf" #define BF_LABEL "bf"
#define BCRYPT_LABEL "bcrypt" #define BCRYPT_LABEL "bcrypt"
@ -58,32 +70,82 @@
#define ACCEPT_LABEL _("Accept") #define ACCEPT_LABEL _("Accept")
//ubl-settings-usergroups-group-creation.glade //ubl-settings-usergroups-group-creation.glade
#define CONFIGURE_GROUP_TITLE_LABEL _("Configure group")
#define ADD_GROUP_TITLE_LABEL _("Add group")
#define GROUP_ID_LABEL _("Group id:")
#define GROUP_CREATION_NAME_LABEL _("Group name:")
#define GROUP_USERS_LABEL _("Group users:")
#define AUTOMATICALLY_LABEL _("Automatically") #define AUTOMATICALLY_LABEL _("Automatically")
#define LOGIN_GROUP_LABEL _("login") #define LOGIN_GROUP_LABEL _("Login")
#define CREATE_GROUP_UNUNIQUE_LABEL _("Create group with ununique GID") #define CREATE_GROUP_UNUNIQUE_LABEL _("Create group with ununique GID")
#define CREATE_SYSTEM_GROUP_LABEL _("Create system group") #define CREATE_SYSTEM_GROUP_LABEL _("Create system group")
#define ENCRYPTED_PASSWORD_LABEL _("Encrypted password") #define ENCRYPTED_PASSWORD_LABEL _("Encrypted password")
#define ADDITIONAL_CONFIGURATION_LABEL _("Additional configuration") #define ADDITIONAL_CONFIGURATION_LABEL _("Additional configuration")
//ubl-settings-usergroups-group.glade //ubl-settings-usergroups-group.glade
#define ADM_LABEL "adm" #define DEFAULT_GROUPS_TITLE_LABEL _("Default groups")
#define AUDIO_LABEL "audio" #define MAIN_GROUP_TITLE_LABEL _("Main group")
#define AUTOLIGIN_LABEL "autologin" #define ADDITIONAL_GROUPS_TITLE_LABEL _("Additional groups")
#define AVAHI_LABEL "avahi" #define GROUPS_TITLE_LABEL _("Choose groups")
#define BIN_LABEL "bin" #define GROUP_USERS_TITLE_LABEL _("Choose users")
#define BRLAPI_LABEL "brlapi"
#define BRITTY_LABEL "britty"
#define BUMBLBEE_LABEL "bumblbee"
#define CHRONY_LABEL "chrony"
#define CLAMAV_LABEL "clamav"
#define COLORD_LABEL "colord"
//ubl-settings-usergroups-system.glade //ubl-settings-usergroups-system.glade
#define INSPECTOR_TITLE_LABEL _("System users and groups")
#define BLOCKED_LABEL _("Blocked") #define BLOCKED_LABEL _("Blocked")
#define USERNAME_LABEL _("Username") #define USERNAME_LABEL _("Username")
#define PRIMARY_GROUP_LABEL _("Primary group") #define PRIMARY_GROUP_LABEL _("Primary group")
#define HOME_DIRECTORY_LABEL _("Home directory") #define HOME_DIRECTORY_LABEL _("Home directory")
#define GROUP_LABEL _("Group") #define GROUP_LABEL _("Group")
#define UPDATE_SYSTEM_LABEL _("Update the system users and groups list")
#define TOGGLE_SYSTEM_LABEL _("Toggle system groups and users")
#define PASSWORD_MISMATCH_LABEL _("Password mismatch")
#define PASSWORD_SHORT_LABEL(min_size_char) yon_char_unite(_("Password must be at least")," ", min_size_char," ",_("characters"))
#define GROUP_LABEL _("Group") #define GROUP_LABEL _("Group")
#define GROUP_LABEL _("Group") #define DAYS_WARNING_TABLE_LABEL _("Days until warning")
#define DAYS_ACTIVITY_TABLE_LABEL _("Days without activity")
#define SHALL_TABLE_LABEL _("Shell path")
#define PASSWORD_CHANGED_TABLE_LABEL _("Password has been changed")
#define EXPIRATION_TABLE_LABEL _("Expiration date")
#define INTERVAL_MIN_TABLE_LABEL _("Password change interval (min)")
#define INTERVAL_MAX_TABLE_LABEL _("Password change interval (max)")
//ubl-settings-usergroups-user.glade
#define ADD_USER_TITLE_LABEL _("Add user")
#define CONFIGURE_USER_TITLE_LABEL _("Configure user")
#define SET_LABEL _("Set")
#define EMPTY_IMPORTANT_LABEL _("Empty important field")
#define LOADING_FAILED_LABEL _("Loading has failed")
#define LOGIN_NAME_LABEL _("Login name")
#define ADDITIONAL_GROUPS_LABEL _("Additional groups:")
#define PASSWORD_SECTION_LABEL _("Password configuration")
#define PASSWORD_CHANGE_DATA_LABEL _("Password has been changed:")
#define EXPIRATION_DATE_LABEL _("expiration date:")
#define PASSWORD_MIN_INTERVAL_LABEL _("Password change interval: minimum")
#define PASSWORD_MAX_INTERVAL_LABEL _("days, maximum")
#define DAYS_LABEL _("days")
#define DAYS_WARNING_LABEL _("Days until warning:")
#define DAYS_ACTIVITY_LABEL _("Days without activity:")
#define FORCE_CONFIGURE_LABEL _("Force change at next login")
#define USER_SHELL_LABEL _("User shell:")
#define HOME_DIR_LABEL _("Home directory:")
#define DONT_SET_LABEL _("Don't set")
#define CREATE_SYSTEM_USER_LABEL _("Create system user")
#define CREATE_UNUNIQUE_LABEL _("Create user with ununique (repeating) UID")
#define DO_NOT_CHECK_LABEL _("Do not check login for compliance with character rules")
#define TEMPORARY_DEACTIVATION_LABEL _("Temporary deactivation")
#define SAVE_LABEL _("Save")
#define LOGIN_TOOLTIP_NAME_LABEL _("login_name")
#define GROUP_TOOLTIP_NAME_LABEL _("group_name")
#define USER_NAME_LABEL _("User name")
#define USERADD_SYNC_LABEL _("System user synchronization mode with configuration")
#define USERADD_BOOT_LABEL _("During system startup, load the user from the configuration")
#define USERADD_SHUTDOWN_LABEL _("When shutting down the system, save the user into the configuration")
#define USERSHADOW_SYNC_LABEL _("The mode of synchronizing system user settings with the configuration")
#define USERSHADOW_BOOT_LABEL _("When the system boots up, load the user's settings from the configuration")
#define USERSHADOW_SHUTDOWN_LABEL _("When shutting down the system, save the user's settings into the configuration")
//ubl-settings-usergroups-password.glade
#define PASSWORD_REPEAT_LABEL _("Repeat password:")
#define PASSWORD_HASH_LABEL _("Password hash:")

@ -13,11 +13,20 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.accept-symbolic</property> <property name="icon-name">com.ublinux.ubl-settings-usergroups.accept-symbolic</property>
</object> </object>
<object class="GtkApplicationWindow" id="Window"> <object class="GtkImage" id="image3">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.edit-symbolic</property>
</object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.edit-symbolic</property>
</object>
<object class="GtkWindow" id="Window">
<property name="width-request">600</property> <property name="width-request">600</property>
<property name="height-request">350</property> <property name="height-request">350</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="resizable">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups</property> <property name="icon-name">com.ublinux.ubl-settings-usergroups</property>
<child> <child>
@ -60,7 +69,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-left">5</property> <property name="margin-left">5</property>
<property name="margin-start">5</property> <property name="margin-start">4</property>
<property name="label" translatable="yes">Default user name (if there's no another):</property> <property name="label" translatable="yes">Default user name (if there's no another):</property>
<property name="xalign">0</property> <property name="xalign">0</property>
</object> </object>
@ -75,6 +84,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.profile-symbolic</property> <property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.profile-symbolic</property>
<property name="placeholder-text" translatable="yes">superadmin</property>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
@ -118,8 +128,7 @@
<object class="GtkLabel" id="label2"> <object class="GtkLabel" id="label2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-left">5</property> <property name="margin-start">4</property>
<property name="margin-start">5</property>
<property name="label" translatable="yes">Default user password:</property> <property name="label" translatable="yes">Default user password:</property>
<property name="xalign">0</property> <property name="xalign">0</property>
</object> </object>
@ -150,6 +159,7 @@
<child> <child>
<object class="GtkEntry" id="DefaultPasswordEntry"> <object class="GtkEntry" id="DefaultPasswordEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="max-length">30</property> <property name="max-length">30</property>
<property name="visibility">False</property> <property name="visibility">False</property>
@ -164,6 +174,23 @@
<property name="position">2</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkButton" id="DefaultPasswordButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image3</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -180,6 +207,7 @@
<object class="GtkLabel" id="label4"> <object class="GtkLabel" id="label4">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-start">4</property>
<property name="label" translatable="yes">Root user password:</property> <property name="label" translatable="yes">Root user password:</property>
<property name="xalign">0</property> <property name="xalign">0</property>
</object> </object>
@ -210,6 +238,7 @@
<child> <child>
<object class="GtkEntry" id="RootPasswordEntry"> <object class="GtkEntry" id="RootPasswordEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="max-length">30</property> <property name="max-length">30</property>
<property name="visibility">False</property> <property name="visibility">False</property>
@ -221,10 +250,26 @@
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">2</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkButton" id="RootPasswordButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image4</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -249,7 +294,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-left">5</property> <property name="margin-left">5</property>
<property name="margin-start">5</property> <property name="margin-start">4</property>
<property name="label" translatable="yes">Password hash algorythm:</property> <property name="label" translatable="yes">Password hash algorythm:</property>
<property name="xalign">0</property> <property name="xalign">0</property>
</object> </object>
@ -264,22 +309,6 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="active">0</property> <property name="active">0</property>
<items>
<item translatable="yes">md5</item>
<item translatable="yes">yescrypt</item>
<item translatable="yes">ghost-yescrypt</item>
<item translatable="yes">scrypt</item>
<item translatable="yes">bf</item>
<item translatable="yes">bcrypt</item>
<item translatable="yes">bcrypt-a</item>
<item translatable="yes">sha512crypt</item>
<item translatable="yes">sha256crypt</item>
<item translatable="yes">sunmd5</item>
<item translatable="yes">md5crypt</item>
<item translatable="yes">bsdicrypt</item>
<item translatable="yes">desctrypt</item>
<item translatable="yes">nt</item>
</items>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
@ -307,6 +336,7 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">end</property> <property name="halign">end</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<property name="homogeneous">True</property>
<child> <child>
<object class="GtkButton" id="CancelButton"> <object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Cancel</property> <property name="label" translatable="yes">Cancel</property>
@ -323,7 +353,7 @@
</child> </child>
<child> <child>
<object class="GtkButton" id="AcceptButton"> <object class="GtkButton" id="AcceptButton">
<property name="label" translatable="yes">Accept</property> <property name="label" translatable="yes">Ok</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
@ -354,7 +384,7 @@
<object class="GtkLabel"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Users and groups</property> <property name="label" translatable="yes">Additional settings</property>
<attributes> <attributes>
<attribute name="weight" value="bold"/> <attribute name="weight" value="bold"/>
</attributes> </attributes>

@ -23,9 +23,8 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.accept-symbolic</property> <property name="icon-name">com.ublinux.ubl-settings-usergroups.accept-symbolic</property>
</object> </object>
<object class="GtkApplicationWindow" id="CreateGroupWindow"> <object class="GtkWindow" id="CreateGroupWindow">
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="resizable">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="default-width">450</property> <property name="default-width">450</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups</property> <property name="icon-name">com.ublinux.ubl-settings-usergroups</property>
@ -68,7 +67,7 @@
<object class="GtkLabel" id="label1"> <object class="GtkLabel" id="label1">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Group Id:</property> <property name="label" translatable="yes">Group id:</property>
<property name="xalign">0</property> <property name="xalign">0</property>
</object> </object>
<packing> <packing>
@ -83,6 +82,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
<property name="active">True</property>
<property name="draw-indicator">True</property> <property name="draw-indicator">True</property>
</object> </object>
<packing> <packing>
@ -94,6 +94,7 @@
<child> <child>
<object class="GtkEntry" id="userUIDEntry"> <object class="GtkEntry" id="userUIDEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="placeholder-text" translatable="yes">1007</property> <property name="placeholder-text" translatable="yes">1007</property>
<property name="input-purpose">number</property> <property name="input-purpose">number</property>
@ -134,7 +135,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.profile-symbolic</property> <property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.profile-symbolic</property>
<property name="placeholder-text" translatable="yes">login</property> <property name="placeholder-text" translatable="yes">group_name</property>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
@ -236,7 +237,7 @@
</child> </child>
<child> <child>
<object class="GtkButton" id="UserOkButton"> <object class="GtkButton" id="UserOkButton">
<property name="label" translatable="yes">Save</property> <property name="label" translatable="yes">Accept</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
@ -346,6 +347,7 @@
<child> <child>
<object class="GtkEntry" id="PasswordEntry"> <object class="GtkEntry" id="PasswordEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="visibility">False</property> <property name="visibility">False</property>
<property name="invisible-char">*</property> <property name="invisible-char">*</property>
@ -361,6 +363,7 @@
<child> <child>
<object class="GtkButton" id="ChangePasswordButton"> <object class="GtkButton" id="ChangePasswordButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="image">image2</property> <property name="image">image2</property>
@ -399,6 +402,43 @@
<property name="position">3</property> <property name="position">3</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Extra options:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="groupExtraOptionsEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
</object> </object>
</child> </child>
<child type="titlebar"> <child type="titlebar">
@ -410,7 +450,7 @@
<object class="GtkLabel" id="userTitleNameLabel"> <object class="GtkLabel" id="userTitleNameLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Users and groups</property> <property name="label" translatable="yes">Add group</property>
<attributes> <attributes>
<attribute name="weight" value="bold"/> <attribute name="weight" value="bold"/>
</attributes> </attributes>

@ -3,193 +3,6 @@
<interface domain="ubl-settings-usergroups"> <interface domain="ubl-settings-usergroups">
<requires lib="gtk+" version="3.24"/> <requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-usergroups.css --> <!-- interface-css-provider-path ubl-settings-usergroups.css -->
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkCheckButton" id="groupsAdmGroupCheck">
<property name="label" translatable="yes">adm</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="groupsAudioGroupCheck">
<property name="label" translatable="yes">audio</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="groupsAutologinGroupCheck">
<property name="label" translatable="yes">autologin</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="groupsAvahiGroupCheck">
<property name="label" translatable="yes">avahi</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="groupsBinGroupCheck">
<property name="label" translatable="yes">bin</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="groupsBrlapiGroupCheck">
<property name="label" translatable="yes">brlapi</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="groupsBrittyGroupCheck">
<property name="label" translatable="yes">britty</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="groupsBumblbeeGroupCheck">
<property name="label" translatable="yes">bumblbee</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="groupsChronyGroupCheck">
<property name="label" translatable="yes">chrony</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">8</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="groupsClamavGroupCheck">
<property name="label" translatable="yes">clamav</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">9</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="groupsCockpitWsGroupCheck">
<property name="label" translatable="yes">cockpit-ws</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">10</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="groupsCockpitWsinstanceGroupCheck">
<property name="label" translatable="yes">cockpit-wsinstance</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">11</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="groupsColordGroupCheck">
<property name="label" translatable="yes">colord</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">12</property>
</packing>
</child>
</object>
<object class="GtkImage" id="image5"> <object class="GtkImage" id="image5">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
@ -200,13 +13,12 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.accept-symbolic</property> <property name="icon-name">com.ublinux.ubl-settings-usergroups.accept-symbolic</property>
</object> </object>
<object class="GtkApplicationWindow" id="GroupsWindow"> <object class="GtkWindow" id="GroupsWindow">
<property name="width-request">250</property> <property name="width-request">250</property>
<property name="height-request">385</property> <property name="height-request">385</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="resizable">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="icon-name">dialog-question-symbolic</property> <property name="icon-name">com.ublinux.ubl-settings-usergroups</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
@ -228,13 +40,16 @@
<object class="GtkTreeView" id="GroupsTree"> <object class="GtkTreeView" id="GroupsTree">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="enable-grid-lines">vertical</property>
<child internal-child="selection"> <child internal-child="selection">
<object class="GtkTreeSelection"/> <object class="GtkTreeSelection">
<property name="mode">none</property>
</object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<child> <child>
<object class="GtkCellRendererToggle"/> <object class="GtkCellRendererToggle" id="StatusCell"/>
<attributes> <attributes>
<attribute name="active">0</attribute> <attribute name="active">0</attribute>
</attributes> </attributes>
@ -261,6 +76,42 @@
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkBox" id="AddNewBox">
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkCheckButton" id="AddNewCheck">
<property name="label" translatable="yes">Add to new:</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="AddNewEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
@ -306,7 +157,7 @@
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
</object> </object>
@ -317,10 +168,10 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="show-close-button">True</property> <property name="show-close-button">True</property>
<child type="title"> <child type="title">
<object class="GtkLabel"> <object class="GtkLabel" id="HeaderLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Users and groups</property> <property name="label" translatable="yes">Choose groups</property>
<attributes> <attributes>
<attribute name="weight" value="bold"/> <attribute name="weight" value="bold"/>
</attributes> </attributes>

@ -3,21 +3,6 @@
<interface domain="ubl-settings-usergroups"> <interface domain="ubl-settings-usergroups">
<requires lib="gtk+" version="3.24"/> <requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-usergroups.css --> <!-- interface-css-provider-path ubl-settings-usergroups.css -->
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.view-symbolic</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.view-symbolic</property>
</object>
<object class="GtkImage" id="image3">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.view-symbolic</property>
</object>
<object class="GtkImage" id="image4"> <object class="GtkImage" id="image4">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
@ -28,7 +13,7 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.accept-symbolic</property> <property name="icon-name">com.ublinux.ubl-settings-usergroups.accept-symbolic</property>
</object> </object>
<object class="GtkApplicationWindow" id="CreateGroupWindow"> <object class="GtkWindow" id="CreateGroupWindow">
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="resizable">False</property> <property name="resizable">False</property>
<property name="modal">True</property> <property name="modal">True</property>
@ -85,7 +70,7 @@
</child> </child>
<child> <child>
<object class="GtkButton" id="UserOkButton"> <object class="GtkButton" id="UserOkButton">
<property name="label" translatable="yes">Save</property> <property name="label" translatable="yes">Accept</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
@ -117,31 +102,46 @@
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox" id="PasswordBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkLabel" id="label3"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Parrword:</property> <property name="spacing">5</property>
<property name="xalign">0</property> <child>
</object> <object class="GtkLabel" id="label3">
<packing> <property name="visible">True</property>
<property name="expand">False</property> <property name="can-focus">False</property>
<property name="fill">True</property> <property name="label" translatable="yes">Password:</property>
<property name="position">0</property> <property name="xalign">0</property>
</packing> </object>
</child> <packing>
<child> <property name="expand">False</property>
<object class="GtkEntry"> <property name="fill">True</property>
<property name="visible">True</property> <property name="position">0</property>
<property name="can-focus">True</property> </packing>
<property name="visibility">False</property> </child>
<property name="invisible-char">*</property> <child>
<property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.key-symbolic</property> <object class="GtkEntry" id="PasswordEntry">
<property name="placeholder-text" translatable="yes">********</property> <property name="visible">True</property>
<property name="can-focus">True</property>
<property name="visibility">False</property>
<property name="invisible-char">*</property>
<property name="truncate-multiline">True</property>
<property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.view-symbolic</property>
<property name="placeholder-text" translatable="yes">********</property>
<property name="input-purpose">password</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
@ -150,106 +150,64 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkButton"> <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image3</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Repeat password:</property> <property name="spacing">5</property>
<property name="xalign">0</property> <child>
</object> <object class="GtkLabel" id="label2">
<packing> <property name="visible">True</property>
<property name="expand">False</property> <property name="can-focus">False</property>
<property name="fill">True</property> <property name="label" translatable="yes">Repeat password:</property>
<property name="position">0</property> <property name="xalign">0</property>
</packing> </object>
</child> <packing>
<child> <property name="expand">False</property>
<object class="GtkEntry"> <property name="fill">True</property>
<property name="visible">True</property> <property name="position">0</property>
<property name="can-focus">True</property> </packing>
<property name="visibility">False</property> </child>
<property name="invisible-char">*</property> <child>
<property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.key-symbolic</property> <object class="GtkEntry" id="RepeatPasswordEntry">
<property name="placeholder-text" translatable="yes">********</property> <property name="visible">True</property>
<property name="can-focus">True</property>
<property name="visibility">False</property>
<property name="invisible-char">*</property>
<property name="truncate-multiline">True</property>
<property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.view-symbolic</property>
<property name="placeholder-text" translatable="yes">********</property>
<property name="input-purpose">password</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image1</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
</object> </object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkBox"> <object class="GtkBox" id="HashBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkLabel" id="label1"> <object class="GtkSeparator">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Password hash:</property>
<property name="xalign">0</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -258,9 +216,37 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkEntry"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Password hash:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="PasswordHashEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="visibility">False</property>
<property name="invisible-char">*</property>
<property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.view-symbolic</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
@ -268,25 +254,9 @@
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image2</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">3</property> <property name="position">3</property>
</packing> </packing>
@ -309,7 +279,7 @@
<object class="GtkLabel" id="userTitleNameLabel"> <object class="GtkLabel" id="userTitleNameLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Users and groups</property> <property name="label" translatable="yes">Password input</property>
<attributes> <attributes>
<attribute name="weight" value="bold"/> <attribute name="weight" value="bold"/>
</attributes> </attributes>
@ -320,9 +290,8 @@
</object> </object>
<object class="GtkSizeGroup"> <object class="GtkSizeGroup">
<widgets> <widgets>
<widget name="label1"/>
<widget name="label2"/>
<widget name="label3"/> <widget name="label3"/>
<widget name="label2"/>
</widgets> </widgets>
</object> </object>
</interface> </interface>

@ -13,13 +13,53 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.sync-symbolic</property> <property name="icon-name">com.ublinux.ubl-settings-usergroups.sync-symbolic</property>
</object> </object>
<object class="GtkListStore" id="liststore1"/> <object class="GtkListStore" id="liststore1">
<object class="GtkListStore" id="liststore2"/> <columns>
<object class="GtkApplicationWindow" id="MonitorWindow"> <!-- column-name gboolean1 -->
<column type="gboolean"/>
<!-- column-name gint1 -->
<column type="gint"/>
<!-- column-name gchararray2 -->
<column type="gchararray"/>
<!-- column-name gchararray3 -->
<column type="gchararray"/>
<!-- column-name gchararray4 -->
<column type="gchararray"/>
<!-- column-name gchararray5 -->
<column type="gchararray"/>
<!-- column-name gchararray6 -->
<column type="gchararray"/>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gchararray7 -->
<column type="gchararray"/>
<!-- column-name gchararray8 -->
<column type="gchararray"/>
<!-- column-name gchararray9 -->
<column type="gchararray"/>
<!-- column-name gchararray10 -->
<column type="gchararray"/>
<!-- column-name gchararray11 -->
<column type="gchararray"/>
<!-- column-name gchararray12 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="liststore2">
<columns>
<!-- column-name gint1 -->
<column type="gint"/>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
<!-- column-name gchararray3 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkWindow" id="MonitorWindow">
<property name="width-request">800</property> <property name="width-request">800</property>
<property name="height-request">600</property> <property name="height-request">600</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="resizable">False</property> <property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups</property> <property name="icon-name">com.ublinux.ubl-settings-usergroups</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
@ -37,10 +77,11 @@
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkButton"> <object class="GtkButton" id="ToggleAllButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Toggle system groups and users</property>
<property name="image">image1</property> <property name="image">image1</property>
<style> <style>
<class name="thin"/> <class name="thin"/>
@ -53,10 +94,11 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkButton"> <object class="GtkButton" id="UpdateButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Update the system users and groups list</property>
<property name="image">image2</property> <property name="image">image2</property>
<style> <style>
<class name="thin"/> <class name="thin"/>
@ -80,46 +122,193 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<child> <child>
<object class="GtkTreeView"> <object class="GtkScrolledWindow">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="model">liststore2</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Blocked</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">UID</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Login</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Username</property>
</object>
</child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeView" id="SystemTree">
<property name="title" translatable="yes">Primary group</property> <property name="visible">True</property>
</object> <property name="can-focus">True</property>
</child> <property name="model">liststore1</property>
<child> <property name="enable-grid-lines">both</property>
<object class="GtkTreeViewColumn"> <child internal-child="selection">
<property name="title" translatable="yes">Additional groups</property> <object class="GtkTreeSelection">
</object> <property name="mode">none</property>
</child> </object>
<child> </child>
<object class="GtkTreeViewColumn"> <child>
<property name="title" translatable="yes">Home directory</property> <object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">Blocked</property>
<child>
<object class="GtkCellRendererToggle"/>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">UID</property>
<property name="sort-column-id">1</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">Login</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">2</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">Username</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">3</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">Primary group</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">4</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">Additional groups</property>
<child>
<object class="GtkCellRendererText">
<property name="wrap-width">150</property>
</object>
<attributes>
<attribute name="text">5</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="min-width">50</property>
<property name="title" translatable="yes">Home directory</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">6</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Shell path</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">7</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Password has been changed</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">8</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Expiration date</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">9</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Password change interval (min)</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">10</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Password change interval (max)</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">11</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Days until warning</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">12</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Days without activity</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">13</attribute>
</attributes>
</child>
</object>
</child>
</object> </object>
</child> </child>
</object> </object>
@ -135,34 +324,62 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkTreeView"> <object class="GtkScrolledWindow">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="model">liststore1</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeView">
<property name="title" translatable="yes">UID</property> <property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">liststore2</property>
<property name="enable-grid-lines">both</property>
<child internal-child="selection">
<object class="GtkTreeSelection">
<property name="mode">none</property>
</object>
</child>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">GID</property>
<property name="sort-column-id">0</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child> </child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Group</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="min-width">50</property>
<property name="title" translatable="yes">Group</property>
<child>
<object class="GtkCellRendererText">
<property name="wrap-width">150</property>
</object>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child> </child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Group users</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkTreeViewColumn">
<property name="min-width">50</property>
<property name="title" translatable="yes">Group users</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">2</attribute>
</attributes>
</child>
</object>
</child> </child>
</object> </object>
</child> </child>
@ -192,7 +409,7 @@
</object> </object>
</child> </child>
<child type="titlebar"> <child type="titlebar">
<object class="GtkHeaderBar" id="SettingsBar"> <object class="GtkHeaderBar">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="show-close-button">True</property> <property name="show-close-button">True</property>
@ -200,7 +417,7 @@
<object class="GtkLabel" id="webHeaderNameLabel"> <object class="GtkLabel" id="webHeaderNameLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Users and groups</property> <property name="label" translatable="yes">System users and groups</property>
<attributes> <attributes>
<attribute name="weight" value="bold"/> <attribute name="weight" value="bold"/>
</attributes> </attributes>

@ -5,22 +5,22 @@
<!-- interface-css-provider-path ubl-settings-usergroups.css --> <!-- interface-css-provider-path ubl-settings-usergroups.css -->
<object class="GtkSizeGroup"/> <object class="GtkSizeGroup"/>
<object class="GtkAdjustment" id="adjustment1"> <object class="GtkAdjustment" id="adjustment1">
<property name="upper">100</property> <property name="upper">1e+21</property>
<property name="step-increment">1</property> <property name="step-increment">1</property>
<property name="page-increment">10</property> <property name="page-increment">10</property>
</object> </object>
<object class="GtkAdjustment" id="adjustment2"> <object class="GtkAdjustment" id="adjustment2">
<property name="upper">100</property> <property name="upper">1e+21</property>
<property name="step-increment">1</property> <property name="step-increment">1</property>
<property name="page-increment">10</property> <property name="page-increment">10</property>
</object> </object>
<object class="GtkAdjustment" id="adjustment3"> <object class="GtkAdjustment" id="adjustment3">
<property name="upper">100</property> <property name="upper">1e+21</property>
<property name="step-increment">1</property> <property name="step-increment">1</property>
<property name="page-increment">10</property> <property name="page-increment">10</property>
</object> </object>
<object class="GtkAdjustment" id="adjustment4"> <object class="GtkAdjustment" id="adjustment4">
<property name="upper">100</property> <property name="upper">1e+21</property>
<property name="step-increment">1</property> <property name="step-increment">1</property>
<property name="page-increment">10</property> <property name="page-increment">10</property>
</object> </object>
@ -59,10 +59,9 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups.cancel-symbolic</property> <property name="icon-name">com.ublinux.ubl-settings-usergroups.cancel-symbolic</property>
</object> </object>
<object class="GtkApplicationWindow" id="CreateUserWindow"> <object class="GtkWindow" id="CreateUserWindow">
<property name="height-request">500</property> <property name="height-request">500</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="resizable">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups</property> <property name="icon-name">com.ublinux.ubl-settings-usergroups</property>
<child> <child>
@ -75,6 +74,7 @@
<object class="GtkBox" id="StatusBox"> <object class="GtkBox" id="StatusBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child> <child>
<placeholder/> <placeholder/>
</child> </child>
@ -114,7 +114,7 @@
<object class="GtkLabel" id="label1"> <object class="GtkLabel" id="label1">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">UID:</property> <property name="label" translatable="yes">User UID:</property>
<property name="xalign">0</property> <property name="xalign">0</property>
</object> </object>
<packing> <packing>
@ -129,6 +129,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
<property name="active">True</property>
<property name="draw-indicator">True</property> <property name="draw-indicator">True</property>
</object> </object>
<packing> <packing>
@ -140,7 +141,9 @@
<child> <child>
<object class="GtkEntry" id="userUIDEntry"> <object class="GtkEntry" id="userUIDEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="max-length">5</property>
<property name="placeholder-text" translatable="yes">1001</property> <property name="placeholder-text" translatable="yes">1001</property>
<property name="input-purpose">number</property> <property name="input-purpose">number</property>
</object> </object>
@ -180,7 +183,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.profile-symbolic</property> <property name="secondary-icon-name">com.ublinux.ubl-settings-usergroups.profile-symbolic</property>
<property name="placeholder-text" translatable="yes">login</property> <property name="placeholder-text" translatable="yes">login_name</property>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
@ -234,6 +237,7 @@
<child> <child>
<object class="GtkEntry" id="userPasswordEntry"> <object class="GtkEntry" id="userPasswordEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="visibility">False</property> <property name="visibility">False</property>
<property name="invisible-char">*</property> <property name="invisible-char">*</property>
@ -252,6 +256,7 @@
<child> <child>
<object class="GtkButton" id="userPasswordButton"> <object class="GtkButton" id="userPasswordButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="image">image3</property> <property name="image">image3</property>
@ -281,7 +286,7 @@
<object class="GtkLabel" id="label2"> <object class="GtkLabel" id="label2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">User name:</property> <property name="label" translatable="yes">User name (description):</property>
<property name="xalign">0</property> <property name="xalign">0</property>
</object> </object>
<packing> <packing>
@ -294,7 +299,7 @@
<object class="GtkEntry" id="userUserNameEntry"> <object class="GtkEntry" id="userUserNameEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="placeholder-text" translatable="yes">username</property> <property name="placeholder-text" translatable="yes">User name</property>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
@ -333,6 +338,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
<property name="active">True</property>
<property name="draw-indicator">True</property> <property name="draw-indicator">True</property>
</object> </object>
<packing> <packing>
@ -344,6 +350,7 @@
<child> <child>
<object class="GtkEntry" id="userGroupsEntry"> <object class="GtkEntry" id="userGroupsEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
</object> </object>
<packing> <packing>
@ -355,6 +362,7 @@
<child> <child>
<object class="GtkButton" id="UserGroupsButton"> <object class="GtkButton" id="UserGroupsButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="image">image1</property> <property name="image">image1</property>
@ -384,7 +392,7 @@
<object class="GtkLabel"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Additional group:</property> <property name="label" translatable="yes">Additional groups:</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -423,14 +431,79 @@
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">7</property> <property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkCheckButton" id="UseraddBootCheck">
<property name="label" translatable="yes">During system startup, load the user from the configuration</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="UseraddShutdownCheck">
<property name="label" translatable="yes">When shutting down the system, save the user into the configuration</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">System user synchronization mode with configuration</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkFrame"> <object class="GtkFrame">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label-xalign">0</property> <property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property> <property name="shadow-type">in</property>
<child> <child>
<object class="GtkAlignment"> <object class="GtkAlignment">
@ -465,6 +538,7 @@
<child> <child>
<object class="GtkEntry" id="userPasswordChangedEntry"> <object class="GtkEntry" id="userPasswordChangedEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
</object> </object>
<packing> <packing>
@ -488,6 +562,7 @@
<child> <child>
<object class="GtkEntry" id="userPasswordExpirationEntry"> <object class="GtkEntry" id="userPasswordExpirationEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
</object> </object>
<packing> <packing>
@ -701,6 +776,71 @@
</object> </object>
</child> </child>
</object> </object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkCheckButton" id="UsershadowBootCheck">
<property name="label" translatable="yes">When the system boots up, load the user's settings from the configuration</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="UsershadowShutdownCheck">
<property name="label" translatable="yes">When shutting down the system, save the user's settings into the configuration</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">The mode of synchronizing system user settings with the configuration</property>
</object>
</child>
</object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
@ -711,7 +851,7 @@
<object class="GtkFrame"> <object class="GtkFrame">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label-xalign">0</property> <property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property> <property name="shadow-type">in</property>
<child> <child>
<object class="GtkAlignment"> <object class="GtkAlignment">
@ -747,6 +887,7 @@
<object class="GtkComboBoxText" id="userShellCombo"> <object class="GtkComboBoxText" id="userShellCombo">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="active">0</property>
<items> <items>
<item translatable="yes">Default</item> <item translatable="yes">Default</item>
</items> </items>
@ -760,6 +901,7 @@
<child> <child>
<object class="GtkEntry" id="userShellEntry"> <object class="GtkEntry" id="userShellEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
</object> </object>
<packing> <packing>
@ -796,8 +938,11 @@
<object class="GtkComboBoxText" id="userHomeCombo"> <object class="GtkComboBoxText" id="userHomeCombo">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="active">0</property>
<items> <items>
<item translatable="yes">Default</item> <item translatable="yes">Default</item>
<item translatable="yes">Don't set</item>
<item translatable="yes">Set</item>
</items> </items>
</object> </object>
<packing> <packing>
@ -809,6 +954,7 @@
<child> <child>
<object class="GtkEntry" id="userHomeEntry"> <object class="GtkEntry" id="userHomeEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
</object> </object>
<packing> <packing>
@ -820,6 +966,7 @@
<child> <child>
<object class="GtkButton" id="userHomeButton"> <object class="GtkButton" id="userHomeButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="image">image2</property> <property name="image">image2</property>
@ -1085,7 +1232,7 @@
<object class="GtkLabel" id="userTitleNameLabel"> <object class="GtkLabel" id="userTitleNameLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Users and groups</property> <property name="label" translatable="yes">Add user</property>
<attributes> <attributes>
<attribute name="weight" value="bold"/> <attribute name="weight" value="bold"/>
</attributes> </attributes>
@ -1094,4 +1241,18 @@
</object> </object>
</child> </child>
</object> </object>
<object class="GtkPopover" id="CalendarPopover">
<property name="can-focus">False</property>
<property name="relative-to">userPasswordExpirationButton</property>
<property name="constrain-to">none</property>
<child>
<object class="GtkCalendar" id="ExpirationCalendar">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="year">2023</property>
<property name="month">11</property>
<property name="day">14</property>
</object>
</child>
</object>
</interface> </interface>

@ -105,4 +105,10 @@ background:transparent;
.boxInfoMessOK{ .boxInfoMessOK{
background-color: #f3f0ac; background-color: #f3f0ac;
}
.errorBox {
border-width: 2px;
border-color: #ea9999;
border-style:solid;
} }

@ -12,4 +12,4 @@ Icon=com.ublinux.ubl-settings-usergroups
Terminal=false Terminal=false
X-XfcePluggable=true X-XfcePluggable=true
X-UBLPluggable=true X-UBLPluggable=true
Categories=XFCE;GTK;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-SystemSettings;X-UBL-SettingsManager;X-UBL-Personal-Settings; Categories=X-UBL-SettingsManager;X-UBL-SystemSettings

@ -33,62 +33,36 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</object> </object>
<object class="GtkListStore" id="GroupsList"> <object class="GtkListStore" id="GroupsList">
<columns> <columns>
<!-- column-name uid --> <!-- column-name GID -->
<column type="gint"/>
<!-- column-name uid_auto -->
<column type="gint"/>
<!-- column-name uid_unique -->
<column type="gboolean"/>
<!-- column-name uid_system -->
<column type="gboolean"/>
<!-- column-name username -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name login --> <!-- column-name Name -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name password --> <!-- column-name Users -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name password_auto --> <!-- column-name Parameters -->
<column type="gint"/>
<!-- column-name groups -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name groups_own --> <!-- column-name PasswordStatus -->
<column type="gboolean"/>
<!-- column-name user_shell -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name home_dir -->
<column type="gchararray"/>
<!-- column-name home_create -->
<column type="gboolean"/>
</columns> </columns>
</object> </object>
<object class="GtkListStore" id="UsersList"> <object class="GtkListStore" id="UsersList">
<columns> <columns>
<!-- column-name uid --> <!-- column-name Block -->
<column type="gint"/>
<!-- column-name uid_auto -->
<column type="gint"/>
<!-- column-name uid_unique -->
<column type="gboolean"/> <column type="gboolean"/>
<!-- column-name uid_system --> <!-- column-name UID -->
<column type="gboolean"/>
<!-- column-name username -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name login --> <!-- column-name Login -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name password --> <!-- column-name UserName -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name password_auto --> <!-- column-name MainGroup -->
<column type="gint"/>
<!-- column-name groups -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name groups_own --> <!-- column-name AdditionalGroups -->
<column type="gboolean"/>
<!-- column-name user_shell -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name home_dir --> <!-- column-name AdditionalParameters -->
<column type="gchararray"/>
<!-- column-name PasswordStatus -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name home_create -->
<column type="gboolean"/>
</columns> </columns>
</object> </object>
<object class="GtkImage" id="image1"> <object class="GtkImage" id="image1">
@ -149,6 +123,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Inspect users and groups in system</property>
<property name="image">image12</property> <property name="image">image12</property>
<style> <style>
<class name="thin"/> <class name="thin"/>
@ -160,11 +135,23 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child> <child>
<object class="GtkButton" id="button2"> <object class="GtkButton" id="button2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Additional settings</property>
<property name="image">image11</property> <property name="image">image11</property>
<style> <style>
<class name="thin"/> <class name="thin"/>
@ -173,7 +160,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -181,6 +168,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Shared groups configuration</property>
<property name="image">image10</property> <property name="image">image10</property>
<style> <style>
<class name="thin"/> <class name="thin"/>
@ -189,7 +177,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">2</property> <property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -197,6 +196,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Create new</property>
<property name="image">image1</property> <property name="image">image1</property>
<style> <style>
<class name="thin"/> <class name="thin"/>
@ -205,14 +205,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">3</property> <property name="position">5</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkButton" id="EditButton"> <object class="GtkButton" id="EditButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Edit</property>
<property name="image">image2</property> <property name="image">image2</property>
<style> <style>
<class name="thin"/> <class name="thin"/>
@ -221,14 +223,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">4</property> <property name="position">6</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkButton" id="DeleteButton"> <object class="GtkButton" id="DeleteButton">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Remove</property>
<property name="image">image3</property> <property name="image">image3</property>
<style> <style>
<class name="thin"/> <class name="thin"/>
@ -237,7 +241,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">5</property> <property name="position">7</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -245,6 +249,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Update users and groups</property>
<property name="image">image13</property> <property name="image">image13</property>
<style> <style>
<class name="thin"/> <class name="thin"/>
@ -253,7 +258,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">6</property> <property name="position">8</property>
</packing> </packing>
</child> </child>
</object> </object>
@ -287,74 +292,122 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="model">UsersList</property> <property name="model">UsersList</property>
<property name="search-column">0</property> <property name="search-column">0</property>
<property name="tooltip-column">5</property>
<child internal-child="selection"> <child internal-child="selection">
<object class="GtkTreeSelection"/> <object class="GtkTreeSelection"/>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed-width">10</property>
<property name="title" translatable="yes">Block</property> <property name="title" translatable="yes">Block</property>
<child>
<object class="GtkCellRendererToggle"/>
</child>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed-width">10</property>
<property name="title" translatable="yes">UID</property> <property name="title" translatable="yes">UID</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
<attributes> <attributes>
<attribute name="text">0</attribute> <attribute name="text">1</attribute>
</attributes> </attributes>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed-width">10</property>
<property name="title" translatable="yes">Login</property> <property name="title" translatable="yes">Login</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
<attributes> <attributes>
<attribute name="text">5</attribute> <attribute name="text">2</attribute>
</attributes> </attributes>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed-width">10</property>
<property name="title" translatable="yes">User name</property> <property name="title" translatable="yes">User name</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
<attributes> <attributes>
<attribute name="text">4</attribute> <attribute name="text">3</attribute>
</attributes> </attributes>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed-width">10</property>
<property name="title" translatable="yes">Main group</property> <property name="title" translatable="yes">Main group</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">4</attribute>
</attributes>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed-width">10</property>
<property name="title" translatable="yes">Additional groups</property> <property name="title" translatable="yes">Additional groups</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText">
<property name="wrap-mode">word</property>
<property name="wrap-width">150</property>
</object>
<attributes>
<attribute name="text">5</attribute>
</attributes>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed-width">10</property>
<property name="title" translatable="yes">Additional parameters</property> <property name="title" translatable="yes">Additional parameters</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText">
<property name="wrap-mode">word</property>
<property name="wrap-width">150</property>
</object>
<attributes>
<attribute name="text">6</attribute>
</attributes>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="sizing">autosize</property>
<property name="fixed-width">10</property>
<property name="title" translatable="yes">Password status</property> <property name="title" translatable="yes">Password status</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">7</attribute>
</attributes>
</child>
</object> </object>
</child> </child>
</object> </object>
@ -396,13 +449,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<object class="GtkTreeView" id="GroupsTree"> <object class="GtkTreeView" id="GroupsTree">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="model">UsersList</property> <property name="model">GroupsList</property>
<property name="search-column">0</property> <property name="search-column">0</property>
<child internal-child="selection"> <child internal-child="selection">
<object class="GtkTreeSelection"/> <object class="GtkTreeSelection"/>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed-width">10</property>
<property name="title" translatable="yes">GID</property> <property name="title" translatable="yes">GID</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -414,42 +470,56 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed-width">10</property>
<property name="title" translatable="yes">Group name</property> <property name="title" translatable="yes">Group name</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
<attributes> <attributes>
<attribute name="text">2</attribute> <attribute name="text">1</attribute>
</attributes> </attributes>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed-width">10</property>
<property name="title" translatable="yes">Group users</property> <property name="title" translatable="yes">Group users</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
<attributes> <attributes>
<attribute name="text">3</attribute> <attribute name="text">2</attribute>
</attributes> </attributes>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property>
<property name="sizing">fixed</property>
<property name="fixed-width">10</property>
<property name="title" translatable="yes">Additional parameters</property> <property name="title" translatable="yes">Additional parameters</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
<attributes> <attributes>
<attribute name="text">5</attribute> <attribute name="text">3</attribute>
</attributes> </attributes>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="sizing">autosize</property>
<property name="fixed-width">10</property>
<property name="title" translatable="yes">Password status</property> <property name="title" translatable="yes">Password status</property>
<child> <child>
<object class="GtkCellRendererToggle"/> <object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">4</attribute>
</attributes>
</child> </child>
</object> </object>
</child> </child>

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ubl-settings-usergroups 1.0\n" "Project-Id-Version: ubl-settings-usergroups 1.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-22 16:12+0600\n" "POT-Creation-Date: 2023-12-20 16:12+0600\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -69,6 +69,10 @@ msgstr ""
msgid "Lock global configration loading" msgid "Lock global configration loading"
msgstr "" msgstr ""
#: source/ubl-strings.h:2
msgid "Reset application settings"
msgstr ""
#: source/ubl-strings.h:5 #: source/ubl-strings.h:5
msgid "System users and groups configuration" msgid "System users and groups configuration"
msgstr "" msgstr ""
@ -101,7 +105,7 @@ msgstr ""
msgid "UID" msgid "UID"
msgstr "" msgstr ""
#: source/ubl-strings.h:15 #: source/ubl-strings.h:15 source/ubl-strings.h:79
msgid "Login" msgid "Login"
msgstr "" msgstr ""
@ -109,16 +113,16 @@ msgstr ""
msgid "Password" msgid "Password"
msgstr "" msgstr ""
#: source/ubl-strings.h:17 #: source/ubl-strings.h:17 source/ubl-strings.h:140
msgid "User name" msgid "User name"
msgstr "" msgstr ""
#: source/ubl-strings.h:19 #: source/ubl-strings.h:19
msgid "UID:" msgid "User UID:"
msgstr "" msgstr ""
#: source/ubl-strings.h:20 #: source/ubl-strings.h:20
msgid "User name:" msgid "User name (description):"
msgstr "" msgstr ""
#: source/ubl-strings.h:21 #: source/ubl-strings.h:21
@ -137,7 +141,7 @@ msgstr ""
msgid "Main group:" msgid "Main group:"
msgstr "" msgstr ""
#: source/ubl-strings.h:25 #: source/ubl-strings.h:25 source/ubl-strings.h:88
msgid "Additional groups" msgid "Additional groups"
msgstr "" msgstr ""
@ -161,7 +165,7 @@ msgstr ""
msgid "Block" msgid "Block"
msgstr "" msgstr ""
#: source/ubl-strings.h:33 #: source/ubl-strings.h:33 source/ubl-strings.h:87
msgid "Main group" msgid "Main group"
msgstr "" msgstr ""
@ -193,62 +197,317 @@ msgstr ""
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: source/ubl-strings.h:42
msgid "Password input"
msgstr ""
#: source/ubl-strings.h:43 #: source/ubl-strings.h:43
msgid "Set a password" msgid "File owerview"
msgstr "" msgstr ""
#: source/ubl-strings.h:44 #: source/ubl-strings.h:45
msgid "Endrypted password" msgid "Inspect users and groups in system"
msgstr ""
#: source/ubl-strings.h:46 source/ubl-strings.h:54
msgid "Additional settings"
msgstr "" msgstr ""
#: source/ubl-strings.h:47 #: source/ubl-strings.h:47
msgid "Shared groups configuration"
msgstr ""
#: source/ubl-strings.h:48
msgid "Create new"
msgstr ""
#: source/ubl-strings.h:49
msgid "Edit"
msgstr ""
#: source/ubl-strings.h:50
msgid "Remove"
msgstr ""
#: source/ubl-strings.h:51
msgid "Update users and groups"
msgstr ""
#: source/ubl-strings.h:55
msgid "No password required" msgid "No password required"
msgstr "" msgstr ""
#: source/ubl-strings.h:58 #: source/ubl-strings.h:56
msgid "Set a password"
msgstr ""
#: source/ubl-strings.h:57
msgid "Endrypted password"
msgstr ""
#: source/ubl-strings.h:70
msgid "Accept" msgid "Accept"
msgstr "" msgstr ""
#: source/ubl-strings.h:61 #: source/ubl-strings.h:73
msgid "Automatically" msgid "Configure group"
msgstr ""
#: source/ubl-strings.h:74
msgid "Add group"
msgstr ""
#: source/ubl-strings.h:75
msgid "Group id:"
msgstr ""
#: source/ubl-strings.h:76
msgid "Group name:"
msgstr "" msgstr ""
#: source/ubl-strings.h:62 #: source/ubl-strings.h:77
msgid "login" msgid "Group users:"
msgstr "" msgstr ""
#: source/ubl-strings.h:63 #: source/ubl-strings.h:78
msgid "Automatically"
msgstr ""
#: source/ubl-strings.h:80
msgid "Create group with ununique GID" msgid "Create group with ununique GID"
msgstr "" msgstr ""
#: source/ubl-strings.h:64 #: source/ubl-strings.h:81
msgid "Create system group" msgid "Create system group"
msgstr "" msgstr ""
#: source/ubl-strings.h:65 #: source/ubl-strings.h:82
msgid "Encrypted password" msgid "Encrypted password"
msgstr "" msgstr ""
#: source/ubl-strings.h:66 #: source/ubl-strings.h:83
msgid "Additional configuration" msgid "Additional configuration"
msgstr "" msgstr ""
#: source/ubl-strings.h:82 #: source/ubl-strings.h:86
msgid "Default groups"
msgstr ""
#: source/ubl-strings.h:89
msgid "Choose groups"
msgstr ""
#: source/ubl-strings.h:90
msgid "Choose users"
msgstr ""
#: source/ubl-strings.h:93
msgid "System users and groups"
msgstr ""
#: source/ubl-strings.h:94
msgid "Blocked" msgid "Blocked"
msgstr "" msgstr ""
#: source/ubl-strings.h:83 #: source/ubl-strings.h:95
msgid "Username" msgid "Username"
msgstr "" msgstr ""
#: source/ubl-strings.h:84 #: source/ubl-strings.h:96
msgid "Primary group" msgid "Primary group"
msgstr "" msgstr ""
#: source/ubl-strings.h:85 #: source/ubl-strings.h:97
msgid "Home directory" msgid "Home directory"
msgstr "" msgstr ""
#: source/ubl-strings.h:86 source/ubl-strings.h:88 source/ubl-strings.h:89 #: source/ubl-strings.h:98 source/ubl-strings.h:104
msgid "Group" msgid "Group"
msgstr "" msgstr ""
#: source/ubl-strings.h:99
msgid "Update the system users and groups list"
msgstr ""
#: source/ubl-strings.h:100
msgid "Toggle system groups and users"
msgstr ""
#: source/ubl-strings.h:102
msgid "Password mismatch"
msgstr ""
#: source/ubl-strings.h:103
msgid "Password must be at least"
msgstr ""
#: source/ubl-strings.h:103
msgid "characters"
msgstr ""
#: source/ubl-strings.h:105
msgid "Days until warning"
msgstr ""
#: source/ubl-strings.h:106
msgid "Days without activity"
msgstr ""
#: source/ubl-strings.h:107
msgid "Shell path"
msgstr ""
#: source/ubl-strings.h:108
msgid "Password has been changed"
msgstr ""
#: source/ubl-strings.h:109
msgid "Expiration date"
msgstr ""
#: source/ubl-strings.h:110
msgid "Password change interval (min)"
msgstr ""
#: source/ubl-strings.h:111
msgid "Password change interval (max)"
msgstr ""
#: source/ubl-strings.h:114
msgid "Add user"
msgstr ""
#: source/ubl-strings.h:115
msgid "Configure user"
msgstr ""
#: source/ubl-strings.h:116
msgid "Set"
msgstr ""
#: source/ubl-strings.h:117
msgid "Empty important field"
msgstr ""
#: source/ubl-strings.h:118
msgid "Loading has failed"
msgstr ""
#: source/ubl-strings.h:119
msgid "Login name"
msgstr ""
#: source/ubl-strings.h:120
msgid "Additional groups:"
msgstr ""
#: source/ubl-strings.h:121
msgid "Password configuration"
msgstr ""
#: source/ubl-strings.h:122
msgid "Password has been changed:"
msgstr ""
#: source/ubl-strings.h:123
msgid "expiration date:"
msgstr ""
#: source/ubl-strings.h:124
msgid "Password change interval: minimum"
msgstr ""
#: source/ubl-strings.h:125
msgid "days, maximum"
msgstr ""
#: source/ubl-strings.h:126
msgid "days"
msgstr ""
#: source/ubl-strings.h:127
msgid "Days until warning:"
msgstr ""
#: source/ubl-strings.h:128
msgid "Days without activity:"
msgstr ""
#: source/ubl-strings.h:129
msgid "Force change at next login"
msgstr ""
#: source/ubl-strings.h:130
msgid "User shell:"
msgstr ""
#: source/ubl-strings.h:131
msgid "Home directory:"
msgstr ""
#: source/ubl-strings.h:132
msgid "Don't set"
msgstr ""
#: source/ubl-strings.h:133
msgid "Create system user"
msgstr ""
#: source/ubl-strings.h:134
msgid "Create user with ununique (repeating) UID"
msgstr ""
#: source/ubl-strings.h:135
msgid "Do not check login for compliance with character rules"
msgstr ""
#: source/ubl-strings.h:136
msgid "Temporary deactivation"
msgstr ""
#: source/ubl-strings.h:137
msgid "Save"
msgstr ""
#: source/ubl-strings.h:138
msgid "login_name"
msgstr ""
#: source/ubl-strings.h:139
msgid "group_name"
msgstr ""
#: source/ubl-strings.h:142
msgid "System user synchronization mode with configuration"
msgstr ""
#: source/ubl-strings.h:143
msgid "During system startup, load the user from the configuration"
msgstr ""
#: source/ubl-strings.h:144
msgid "When shutting down the system, save the user into the configuration"
msgstr ""
#: source/ubl-strings.h:145
msgid "The mode of synchronizing system user settings with the configuration"
msgstr ""
#: source/ubl-strings.h:146
msgid ""
"When the system boots up, load the user's settings from the configuration"
msgstr ""
#: source/ubl-strings.h:147
msgid ""
"When shutting down the system, save the user's settings into the "
"configuration"
msgstr ""
#: source/ubl-strings.h:150
msgid "Repeat password:"
msgstr ""
#: source/ubl-strings.h:151
msgid "Password hash:"
msgstr ""

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ubl-ubl-settings-usergroups 1.0\n" "Project-Id-Version: ubl-ubl-settings-usergroups 1.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-22 16:12+0600\n" "POT-Creation-Date: 2023-12-20 16:12+0600\n"
"PO-Revision-Date: 2023-01-01 00:00+0600\n" "PO-Revision-Date: 2023-01-01 00:00+0600\n"
"Last-Translator: UBLinux Team <info@ublinux.com>\n" "Last-Translator: UBLinux Team <info@ublinux.com>\n"
"Language-Team: Russian - UBLinux Team <info@ublinux.com>\n" "Language-Team: Russian - UBLinux Team <info@ublinux.com>\n"
@ -70,6 +70,10 @@ msgstr "Блокировка сохранения глобальной конф
msgid "Lock global configration loading" msgid "Lock global configration loading"
msgstr "Блокировка загрузки глобальной конфигурации" msgstr "Блокировка загрузки глобальной конфигурации"
#: source/ubl-strings.h:2
msgid "Reset application settings"
msgstr "Сбросить настройки утилиты"
#: source/ubl-strings.h:5 #: source/ubl-strings.h:5
msgid "System users and groups configuration" msgid "System users and groups configuration"
msgstr "" msgstr ""
@ -78,7 +82,7 @@ msgstr ""
#: source/ubl-strings.h:7 #: source/ubl-strings.h:7
msgid "Default user groups:" msgid "Default user groups:"
msgstr "Группы пользователей по умлочанию:" msgstr "Группы пользователей по умолчанию:"
#: source/ubl-strings.h:8 #: source/ubl-strings.h:8
msgid "Default user name (if there's no another):" msgid "Default user name (if there's no another):"
@ -90,21 +94,21 @@ msgstr "Пользователь с ID 1000 является администр
#: source/ubl-strings.h:10 #: source/ubl-strings.h:10
msgid "Default user password:" msgid "Default user password:"
msgstr "Пароль для пользователя по умолчанию" msgstr "Пароль для пользователей по умолчанию:"
#: source/ubl-strings.h:11 #: source/ubl-strings.h:11
msgid "Root user password:" msgid "Root user password:"
msgstr "Пароль пользователя root" msgstr "Пароль пользователя root:"
#: source/ubl-strings.h:12 source/ubl-strings.h:26 #: source/ubl-strings.h:12 source/ubl-strings.h:26
msgid "Password hash algorythm:" msgid "Password hash algorythm:"
msgstr "Алгоритм хэширования пароля" msgstr "Алгоритм хэширования пароля:"
#: source/ubl-strings.h:14 #: source/ubl-strings.h:14
msgid "UID" msgid "UID"
msgstr "UID" msgstr "UID"
#: source/ubl-strings.h:15 #: source/ubl-strings.h:15 source/ubl-strings.h:79
msgid "Login" msgid "Login"
msgstr "Логин" msgstr "Логин"
@ -112,17 +116,17 @@ msgstr "Логин"
msgid "Password" msgid "Password"
msgstr "Пароль" msgstr "Пароль"
#: source/ubl-strings.h:17 #: source/ubl-strings.h:17 source/ubl-strings.h:140
msgid "User name" msgid "User name"
msgstr "Имя пользователя" msgstr "Имя пользователя"
#: source/ubl-strings.h:19 #: source/ubl-strings.h:19
msgid "UID:" msgid "User UID:"
msgstr "UID:" msgstr "UID пользователя:"
#: source/ubl-strings.h:20 #: source/ubl-strings.h:20
msgid "User name:" msgid "User name (description):"
msgstr "Имя пользователя:" msgstr "Имя пользователя (описание):"
#: source/ubl-strings.h:21 #: source/ubl-strings.h:21
msgid "Login:" msgid "Login:"
@ -140,7 +144,7 @@ msgstr "По умолчанию"
msgid "Main group:" msgid "Main group:"
msgstr "Основная группа:" msgstr "Основная группа:"
#: source/ubl-strings.h:25 #: source/ubl-strings.h:25 source/ubl-strings.h:88
msgid "Additional groups" msgid "Additional groups"
msgstr "Дополнительные группы" msgstr "Дополнительные группы"
@ -150,7 +154,7 @@ msgstr "Синхронизировать с пользователем SAMBA"
#: source/ubl-strings.h:28 #: source/ubl-strings.h:28
msgid "Extra options:" msgid "Extra options:"
msgstr "Дополнительный опции:" msgstr "Дополнительные параметры:"
#: source/ubl-strings.h:29 #: source/ubl-strings.h:29
msgid "Cancel" msgid "Cancel"
@ -162,15 +166,15 @@ msgstr "Ок"
#: source/ubl-strings.h:32 #: source/ubl-strings.h:32
msgid "Block" msgid "Block"
msgstr "Блок" msgstr "Заблокировано"
#: source/ubl-strings.h:33 #: source/ubl-strings.h:33 source/ubl-strings.h:87
msgid "Main group" msgid "Main group"
msgstr "Основная группа" msgstr "Основная группа"
#: source/ubl-strings.h:34 #: source/ubl-strings.h:34
msgid "Additional parameters" msgid "Additional parameters"
msgstr "Дополнительные группы" msgstr "Дополнительные параметры"
#: source/ubl-strings.h:35 #: source/ubl-strings.h:35
msgid "Password status" msgid "Password status"
@ -185,7 +189,6 @@ msgid "GID"
msgstr "GID" msgstr "GID"
#: source/ubl-strings.h:38 #: source/ubl-strings.h:38
#, fuzzy
msgid "Group name" msgid "Group name"
msgstr "Имя группы" msgstr "Имя группы"
@ -197,62 +200,320 @@ msgstr "Пользователи группы"
msgid "Groups" msgid "Groups"
msgstr "Группы" msgstr "Группы"
#: source/ubl-strings.h:42
msgid "Password input"
msgstr "Ввод пароля"
#: source/ubl-strings.h:43 #: source/ubl-strings.h:43
msgid "Set a password" msgid "File owerview"
msgstr "Установать пароль" msgstr "Обзор файлов"
#: source/ubl-strings.h:44 #: source/ubl-strings.h:45
msgid "Endrypted password" msgid "Inspect users and groups in system"
msgstr "Зашифрованный пароль" msgstr "Просмотр пользователей и групп в системе"
#: source/ubl-strings.h:46 source/ubl-strings.h:54
msgid "Additional settings"
msgstr "Дополнительные настройки"
#: source/ubl-strings.h:47 #: source/ubl-strings.h:47
msgid "Shared groups configuration"
msgstr "Группы пользователей по умолчанию"
#: source/ubl-strings.h:48
msgid "Create new"
msgstr "Создать"
#: source/ubl-strings.h:49
msgid "Edit"
msgstr "Редактировать"
#: source/ubl-strings.h:50
msgid "Remove"
msgstr "Удалить"
#: source/ubl-strings.h:51
msgid "Update users and groups"
msgstr "Обновить список пользователей и групп"
#: source/ubl-strings.h:55
msgid "No password required" msgid "No password required"
msgstr "Пароль не требуется" msgstr "Пароль не требуется"
#: source/ubl-strings.h:58 #: source/ubl-strings.h:56
msgid "Set a password"
msgstr "Задать пароль"
#: source/ubl-strings.h:57
msgid "Endrypted password"
msgstr "Зашифрованный пароль"
#: source/ubl-strings.h:70
msgid "Accept" msgid "Accept"
msgstr "Принять" msgstr "Принять"
#: source/ubl-strings.h:61 #: source/ubl-strings.h:73
msgid "Configure group"
msgstr "Редактировать группу"
#: source/ubl-strings.h:74
msgid "Add group"
msgstr "Добавить группу"
#: source/ubl-strings.h:75
msgid "Group id:"
msgstr "ID Группы:"
#: source/ubl-strings.h:76
msgid "Group name:"
msgstr "Имя группы:"
#: source/ubl-strings.h:77
msgid "Group users:"
msgstr "Пользователи группы:"
#: source/ubl-strings.h:78
msgid "Automatically" msgid "Automatically"
msgstr "Автоматически" msgstr "Автоматически"
#: source/ubl-strings.h:62 #: source/ubl-strings.h:80
msgid "login"
msgstr "логин"
#: source/ubl-strings.h:63
msgid "Create group with ununique GID" msgid "Create group with ununique GID"
msgstr "Создать группу с повторяющимися (не уникальными) GID" msgstr "Создать группу с повторяющимися (не уникальными) GID"
#: source/ubl-strings.h:64 #: source/ubl-strings.h:81
msgid "Create system group" msgid "Create system group"
msgstr "Создать системную группу" msgstr "Создать системную группу"
#: source/ubl-strings.h:65 #: source/ubl-strings.h:82
msgid "Encrypted password" msgid "Encrypted password"
msgstr "Зашифрованный пароль" msgstr "Зашифрованный пароль"
#: source/ubl-strings.h:66 #: source/ubl-strings.h:83
msgid "Additional configuration" msgid "Additional configuration"
msgstr "Загрузить локальную конфигуруцию" msgstr "Загрузить локальную конфигурацию"
#: source/ubl-strings.h:82 #: source/ubl-strings.h:86
#, fuzzy
msgid "Default groups"
msgstr "Группы пользователей по умолчанию"
#: source/ubl-strings.h:89
msgid "Choose groups"
msgstr "Выбрать группы"
#: source/ubl-strings.h:90
msgid "Choose users"
msgstr "Выбрать пользователей"
#: source/ubl-strings.h:93
msgid "System users and groups"
msgstr "Пользователи и группы в системе"
#: source/ubl-strings.h:94
msgid "Blocked" msgid "Blocked"
msgstr "Заблокировано" msgstr "Заблокировано"
#: source/ubl-strings.h:83 #: source/ubl-strings.h:95
msgid "Username" msgid "Username"
msgstr "Имя пользователя" msgstr "Имя пользователя"
#: source/ubl-strings.h:84 #: source/ubl-strings.h:96
msgid "Primary group" msgid "Primary group"
msgstr "Основная группа" msgstr "Основная группа"
#: source/ubl-strings.h:85 #: source/ubl-strings.h:97
msgid "Home directory" msgid "Home directory"
msgstr "Домашний каталог" msgstr "Домашний каталог"
#: source/ubl-strings.h:86 source/ubl-strings.h:88 source/ubl-strings.h:89 #: source/ubl-strings.h:98 source/ubl-strings.h:104
msgid "Group" msgid "Group"
msgstr "Группа" msgstr "Группа"
#: source/ubl-strings.h:99
msgid "Update the system users and groups list"
msgstr "Обновить список пользователей и групп системы"
#: source/ubl-strings.h:100
msgid "Toggle system groups and users"
msgstr "Переключить видимость системных пользователей и групп"
#: source/ubl-strings.h:102
msgid "Password mismatch"
msgstr "Несовпадение паролей"
#: source/ubl-strings.h:103
msgid "Password must be at least"
msgstr "Пароль должен состоять из как минимум"
#: source/ubl-strings.h:103
msgid "characters"
msgstr "символов"
#: source/ubl-strings.h:105
msgid "Days until warning"
msgstr "Дней до предупреждения"
#: source/ubl-strings.h:106
msgid "Days without activity"
msgstr "Дней без активности"
#: source/ubl-strings.h:107
msgid "Shell path"
msgstr "Путь до оболочки"
#: source/ubl-strings.h:108
msgid "Password has been changed"
msgstr "Пароль изменён"
#: source/ubl-strings.h:109
msgid "Expiration date"
msgstr "Дата устаревания"
#: source/ubl-strings.h:110
msgid "Password change interval (min)"
msgstr "Интервал смены пароля (мин.)"
#: source/ubl-strings.h:111
msgid "Password change interval (max)"
msgstr "Интервал смены пароля (макс.)"
#: source/ubl-strings.h:114
msgid "Add user"
msgstr "Добавить пользователя"
#: source/ubl-strings.h:115
msgid "Configure user"
msgstr "Редактировать пользователя"
#: source/ubl-strings.h:116
msgid "Set"
msgstr "Задать"
#: source/ubl-strings.h:117
msgid "Empty important field"
msgstr "Пустое важное поле"
#: source/ubl-strings.h:118
msgid "Loading has failed"
msgstr "Ошибка загрузки"
#: source/ubl-strings.h:119
msgid "Login name"
msgstr "Имя логина"
#: source/ubl-strings.h:120
msgid "Additional groups:"
msgstr "Дополнительные группы:"
#: source/ubl-strings.h:121
msgid "Password configuration"
msgstr "Конфигурация пароля"
#: source/ubl-strings.h:122
msgid "Password has been changed:"
msgstr "Пароль изменён:"
#: source/ubl-strings.h:123
msgid "expiration date:"
msgstr "Дата устаревания:"
#: source/ubl-strings.h:124
msgid "Password change interval: minimum"
msgstr "Интервал смены пароля: минимум"
#: source/ubl-strings.h:125
msgid "days, maximum"
msgstr "дней, максимум"
#: source/ubl-strings.h:126
msgid "days"
msgstr "дней"
#: source/ubl-strings.h:127
msgid "Days until warning:"
msgstr "Дней до предупреждения:"
#: source/ubl-strings.h:128
#, fuzzy
msgid "Days without activity:"
msgstr "Дней без активности:"
#: source/ubl-strings.h:129
msgid "Force change at next login"
msgstr "Принудительно сменить при следующем входе в систему"
#: source/ubl-strings.h:130
#, fuzzy
msgid "User shell:"
msgstr "Оболочка пользователя:"
#: source/ubl-strings.h:131
msgid "Home directory:"
msgstr "Домашний каталог:"
#: source/ubl-strings.h:132
msgid "Don't set"
msgstr "Не создавать"
#: source/ubl-strings.h:133
msgid "Create system user"
msgstr "Создать системного пользователя"
#: source/ubl-strings.h:134
msgid "Create user with ununique (repeating) UID"
msgstr "Создать пользователя с повторяющимися (не уникальными) UID"
#: source/ubl-strings.h:135
msgid "Do not check login for compliance with character rules"
msgstr "Не проверять логин на несоответствие правилам использования символов"
#: source/ubl-strings.h:136
msgid "Temporary deactivation"
msgstr "Временное отключение учётной записи"
#: source/ubl-strings.h:137
msgid "Save"
msgstr "Сохранить"
#: source/ubl-strings.h:138
msgid "login_name"
msgstr "Имя_логина"
#: source/ubl-strings.h:139
msgid "group_name"
msgstr "Имя_группы"
#: source/ubl-strings.h:142
msgid "System user synchronization mode with configuration"
msgstr "Режим синхронизации пользователя системы с конфигурацией"
#: source/ubl-strings.h:143
msgid "During system startup, load the user from the configuration"
msgstr "При загрузке системы загрузить пользователя из конфигурации"
#: source/ubl-strings.h:144
msgid "When shutting down the system, save the user into the configuration"
msgstr "При завершении работы системы сохранить пользователя в конфигурацию"
#: source/ubl-strings.h:145
msgid "The mode of synchronizing system user settings with the configuration"
msgstr "Режим синхронизации параметров пользователя системы с конфигурацией"
#: source/ubl-strings.h:146
msgid ""
"When the system boots up, load the user's settings from the configuration"
msgstr "При загрузке системы загрузить параметры пользователя из конфигурации"
#: source/ubl-strings.h:147
msgid ""
"When shutting down the system, save the user's settings into the "
"configuration"
msgstr "При завершении работы системы сохранить пользователя в конфигурацию"
#: source/ubl-strings.h:150
msgid "Repeat password:"
msgstr "Подтверждение пароля:"
#: source/ubl-strings.h:151
msgid "Password hash:"
msgstr "Хэш пароля:"

Loading…
Cancel
Save