Merge pull request 'Added horizontal scrolls' (#255) from YanTheKaller/ubl-settings-usergroups:master into master

Reviewed-on: #255
master v2.30
Dmitry Razumov 5 months ago
commit e1015a4971

@ -966,3 +966,15 @@ msgid ""
"Some of users, chosen for deletion, are included as main group for other " "Some of users, chosen for deletion, are included as main group for other "
"users. This users will get default main group after reboot" "users. This users will get default main group after reboot"
msgstr "" msgstr ""
#: source/ubl-strings.h:282
msgid "User auth with password is blocked for user.\nOther access methods are allowed (key auth, user switching etc)."
msgstr ""
#: source/ubl-strings.h:282
msgid "User auth is forbidden"
msgstr ""
#: source/ubl-strings.h:282
msgid "User auth with password is allowed"
msgstr ""

@ -1038,3 +1038,15 @@ msgstr ""
"Часть пользователей выбранных на удаление используются как основные группы " "Часть пользователей выбранных на удаление используются как основные группы "
"других пользователей. После перезагрузки эти пользователи получат основную " "других пользователей. После перезагрузки эти пользователи получат основную "
"группу по умолчанию" "группу по умолчанию"
#: source/ubl-strings.h:282
msgid "User auth with password is blocked for user.\nOther access methods are allowed (key auth, user switching etc)."
msgstr "Аутентификация с помощью пароля заблокирована для пользователя.\nОстальные методы входа разрешены (аутентификация на основе ключей, переключение на пользователя и т.д.)"
#: source/ubl-strings.h:282
msgid "User auth is forbidden"
msgstr "Аутентификация пользователя запрещена"
#: source/ubl-strings.h:282
msgid "User auth with password is allowed"
msgstr "Аутентификация пользователя разрешена"

@ -59,24 +59,26 @@ void yon_remove_confirmation_window_accept_clicked(GtkWidget *self,dictionary *d
system_remove_confirmation_window *window = yon_dictionary_get_data(dict->first->next,system_remove_confirmation_window *); system_remove_confirmation_window *window = yon_dictionary_get_data(dict->first->next,system_remove_confirmation_window *);
if (self == window->ConfigAcceptButton){ if (self == window->ConfigAcceptButton){
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==2){ if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==2){
GtkTreeIter iter, itar; GtkTreeIter iter, itar,child;
GtkTreeModel *model; GtkTreeModel *model;
char *target; char *target;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemTree)),&model,&iter)){
gtk_tree_model_get(model,&iter,2,&target,-1); yon_tree_model_sort_filter_get_model_iter(GTK_TREE_MODEL_SORT(model),&iter,&child);
gtk_tree_model_get(model,&child,2,&target,-1);
} }
for_iter(GTK_TREE_MODEL(widgets->UsersList),&itar){ for_iter(GTK_TREE_MODEL(widgets->UsersList),&itar){
char *cur; char *cur;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&itar,2,&cur,-1); gtk_tree_model_get(GTK_TREE_MODEL(widgets->UsersList),&itar,2,&cur,-1);
if (!strcmp(target,cur)){ if (!strcmp(target,cur)){
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&itar); yon_tree_model_sort_filter_get_child_iter(GTK_TREE_MODEL_SORT(widgets->ConfigUsersSort),&itar,&child);
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&child);
break; break;
} }
} }
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->MainNotebook),0); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->MainNotebook),0);
yon_delete_confirmation_open(widgets); yon_delete_confirmation_open(widgets);
} else if (self == window->AcceptButton || self == window->SystemAcceptButton) { } else if (self == window->AcceptButton || self == window->SystemAcceptButton) {
GtkTreeIter iter, itar; GtkTreeIter iter, itar,child;
GtkTreeModel *model; GtkTreeModel *model;
char *target; char *target;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemGroupsTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemGroupsTree)),&model,&iter)){
@ -86,7 +88,8 @@ void yon_remove_confirmation_window_accept_clicked(GtkWidget *self,dictionary *d
char *cur; char *cur;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->GroupsList),&itar,1,&cur,-1); gtk_tree_model_get(GTK_TREE_MODEL(widgets->GroupsList),&itar,1,&cur,-1);
if (!strcmp(target,cur)){ if (!strcmp(target,cur)){
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree)),&itar); yon_tree_model_sort_filter_get_child_iter(GTK_TREE_MODEL_SORT(widgets->ConfigUsersSort),&itar,&child);
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree)),&child);
break; break;
} }
} }
@ -104,19 +107,21 @@ void yon_remove_confirmation_window_accept_clicked(GtkWidget *self,dictionary *d
yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(widgets->Window),DELETE_CONFIRMATION_TITLE_LABEL,icon_path,"delete-system-user-window"); yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(widgets->Window),DELETE_CONFIRMATION_TITLE_LABEL,icon_path,"delete-system-user-window");
g_signal_connect(G_OBJECT(dialog->AcceptButton),"clicked",G_CALLBACK(on_delete_system_user),dact); g_signal_connect(G_OBJECT(dialog->AcceptButton),"clicked",G_CALLBACK(on_delete_system_user),dact);
GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->SystemTree)); GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->SystemTree));
GtkTreeIter iter; GtkTreeIter iter,child;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemTree)),&model,&iter)){
yon_tree_model_sort_filter_get_model_iter(GTK_TREE_MODEL_SORT(model),&iter,&child);
char *name,*username,*homedir=NULL; char *name,*username,*homedir=NULL;
gtk_tree_model_get(model,&iter,2,&name,3,&username,6,&homedir,-1); gtk_tree_model_get(model,&child,2,&name,3,&username,6,&homedir,-1);
gtk_list_store_append(dialog->list,&iter); gtk_list_store_append(dialog->list,&child);
gtk_list_store_set(dialog->list,&iter,0,1,1,name,2,homedir,4,!yon_char_is_empty(homedir),5,username,-1); gtk_list_store_set(dialog->list,&child,0,1,1,name,2,homedir,4,!yon_char_is_empty(homedir),5,username,-1);
gtk_widget_show(dialog->Window); gtk_widget_show(dialog->Window);
} }
} else { } else {
GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->SystemGroupsTree)); GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->SystemGroupsTree));
GtkTreeIter iter; GtkTreeIter iter,child;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemGroupsTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemGroupsTree)),&model,&iter)){
yon_tree_model_sort_filter_get_model_iter(GTK_TREE_MODEL_SORT(model),&iter,&child);
yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(widgets->Window),DELETE_GROUP_CONFIRMATION_TITLE_LABEL,icon_path,"delete-system-gruop-window"); yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(widgets->Window),DELETE_GROUP_CONFIRMATION_TITLE_LABEL,icon_path,"delete-system-gruop-window");
g_signal_connect(G_OBJECT(dialog->AcceptButton),"clicked",G_CALLBACK(on_delete_system_group),dact); g_signal_connect(G_OBJECT(dialog->AcceptButton),"clicked",G_CALLBACK(on_delete_system_group),dact);
gtk_widget_show(window->AcceptButton); gtk_widget_show(window->AcceptButton);
@ -130,9 +135,9 @@ void yon_remove_confirmation_window_accept_clicked(GtkWidget *self,dictionary *d
gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(dialog->DeletionTree),3),0); gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(dialog->DeletionTree),3),0);
gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(dialog->DeletionTree),4),0); gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(dialog->DeletionTree),4),0);
gtk_tree_model_get(model,&iter,1,&name,-1); gtk_tree_model_get(model,&child,1,&name,-1);
gtk_list_store_append(dialog->list,&iter); gtk_list_store_append(dialog->list,&child);
gtk_list_store_set(dialog->list,&iter,0,1,1,name,-1); gtk_list_store_set(dialog->list,&child,0,1,1,name,-1);
gtk_widget_show(dialog->Window); gtk_widget_show(dialog->Window);
} }
} }

@ -380,7 +380,10 @@ void on_user_save(GtkWidget *self, dictionary *dict){
char *cur; char *cur;
gtk_tree_model_get(model,&iter,2, &cur,-1); gtk_tree_model_get(model,&iter,2, &cur,-1);
if (!yon_char_is_empty(cur)&&!strcmp(cur,login)){ if (!yon_char_is_empty(cur)&&!strcmp(cur,login)){
if (!gtk_tree_selection_iter_is_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&iter)){ GtkTreeIter child,sort;
gtk_tree_model_filter_convert_child_iter_to_iter(GTK_TREE_MODEL_FILTER(widgets->ConfigUsersFilter),&child,&iter);
gtk_tree_model_sort_convert_child_iter_to_iter(GTK_TREE_MODEL_SORT(widgets->ConfigUsersSort),&sort,&child);
if (!gtk_tree_selection_iter_is_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&sort)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),USER_EXIST_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),USER_EXIST_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->userLoginEntry); yon_ubl_status_highlight_incorrect(window->userLoginEntry);
@ -607,10 +610,11 @@ void on_user_sync_with_config(GtkWidget *,main_window *widgets){
switch (active){ switch (active){
case 2:{ case 2:{
GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore1); GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore1);
GtkTreeIter iter; GtkTreeIter iter,child;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemTree)),&model,&iter)){
char *target; char *target;
gtk_tree_model_get(model,&iter,2,&target,-1); yon_tree_model_sort_filter_get_model_iter(GTK_TREE_MODEL_SORT(model),&iter,&child);
gtk_tree_model_get(GTK_TREE_MODEL(widgets->liststore1),&child,2,&target,-1);
dialog_confirmation_data *data = yon_confirmation_dialog_data_new(); dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
if (config(USERADD(target))){ if (config(USERADD(target))){
data->action_text = SYSTEM_USER_SYNC_CONFIRMATION_LABEL(target); data->action_text = SYSTEM_USER_SYNC_CONFIRMATION_LABEL(target);
@ -625,8 +629,8 @@ void on_user_sync_with_config(GtkWidget *,main_window *widgets){
return; return;
} }
char *user = yon_char_parsed_check_exist_begins_with(main_config.groups,main_config.groups_size,target); char *user = yon_char_parsed_check_exist_begins_with(main_config.users,main_config.users_size,target);
char *shadow = yon_char_parsed_check_exist_begins_with(main_config.group_shadow,main_config.group_shadow_size,target); char *shadow = yon_char_parsed_check_exist_begins_with(main_config.shadow,main_config.shadow_size,target);
yon_char_remove_last_symbol(user,'\n'); yon_char_remove_last_symbol(user,'\n');
yon_char_remove_last_symbol(shadow,'\n'); yon_char_remove_last_symbol(shadow,'\n');
int user_size=0; int user_size=0;
@ -662,11 +666,12 @@ void on_user_sync_with_config(GtkWidget *,main_window *widgets){
}break; }break;
case 3:{ case 3:{
GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore1); GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore1);
GtkTreeIter iter; GtkTreeIter iter,child;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemGroupsTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemGroupsTree)),&model,&iter)){
char *target; char *target;
gtk_tree_model_get(model,&iter,1,&target,-1); yon_tree_model_sort_filter_get_model_iter(GTK_TREE_MODEL_SORT(model),&iter,&child);
gtk_tree_model_get(GTK_TREE_MODEL(widgets->liststore2),&child,1,&target,-1);
dialog_confirmation_data *data = yon_confirmation_dialog_data_new(); dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
if (config(GROUPADD(target))){ if (config(GROUPADD(target))){
data->action_text = SYSTEM_GROUP_ADD_CONFIRMATION_LABEL(target); data->action_text = SYSTEM_GROUP_ADD_CONFIRMATION_LABEL(target);

@ -105,20 +105,22 @@ void yon_interface_update(main_window *widgets){
parameters[0]=""; parameters[0]="";
if (parameters_size>1&&!strcmp(parameters[1],"x")) parameters[1]=""; if (parameters_size>1&&!strcmp(parameters[1],"x")) parameters[1]="";
if (parameters_size>2&&!strcmp(parameters[2],"x")) parameters[2]=login; if (parameters_size>2&&!strcmp(parameters[2],"x")) parameters[2]=login;
char *pars = ""; char *pars = NULL;
char *tooltip = AUTH_ALLOWED_LABEL;
if (parameters_size>5&&strcmp(parameters[5],"x")&&strcmp(parameters[5],"")){ if (parameters_size>5&&strcmp(parameters[5],"x")&&strcmp(parameters[5],"")){
if (!check_is_password_hash(parameters[5])&&parameters[5][0]!='%'&&parameters[5][1]!='%'){ if (!strcmp(parameters[5]," ")){
pars = ENCRYPTED_LABEL;
} else if (!strcmp(parameters[5]," ")){
pars = NO_PASSWORD_LABEL; pars = NO_PASSWORD_LABEL;
} else if (!strcmp(parameters[5],"!*")){ } else if (!strcmp(parameters[5],"!*")){
pars = DENY_LOGIN_LABEL; pars = DENY_LOGIN_LABEL;
tooltip = AUTH_FORBIDDEN_LABEL;
} else if (parameters[5][0]=='!'){ } else if (parameters[5][0]=='!'){
pars = BLOCK_LOGIN_LABEL; pars = BLOCK_LOGIN_LABEL;
tooltip = AUTH_PASSWORD_LOCKED_LABEL;
} else if (!check_is_password_hash(parameters[5])||(parameters[5][0]!='%'&&parameters[5][1]!='%')){
pars = ENCRYPTED_LABEL;
} else { } else {
pars = UNENCRYPTED_LABEL; pars = UNENCRYPTED_LABEL;
} }
} else { } else {
pars = DEFAULT_USER_LABEL; pars = DEFAULT_USER_LABEL;
@ -132,7 +134,8 @@ void yon_interface_update(main_window *widgets){
4,parameters_size>2&&!yon_char_is_empty(parameters[2])?parameters[2]:login, 4,parameters_size>2&&!yon_char_is_empty(parameters[2])?parameters[2]:login,
5,parameters_size>3?!strcmp(parameters[3],"x")||!strcmp(parameters[3],"")?def_groups:parameters[3]:def_groups, 5,parameters_size>3?!strcmp(parameters[3],"x")||!strcmp(parameters[3],"")?def_groups:parameters[3]:def_groups,
6,parameters_size>4?!strcmp(parameters[4],"x")?"":parameters[4]:"", 6,parameters_size>4?!strcmp(parameters[4],"x")?"":parameters[4]:"",
7,pars, 7,!yon_char_is_empty(pars)?pars:"",
8,!yon_char_is_empty(tooltip)?tooltip:"",
-1); -1);
if(parameters) if(parameters)
free(parameters); free(parameters);
@ -159,18 +162,20 @@ void yon_interface_update(main_window *widgets){
} }
if (parameters_size>1&&!strcmp(parameters[1],"x")) parameters[1]=""; if (parameters_size>1&&!strcmp(parameters[1],"x")) parameters[1]="";
char *pars=""; char *pars="";
char *tooltip=AUTH_ALLOWED_LABEL;
if (parameters_size>4&&strcmp(parameters[4],"x")&&strcmp(parameters[4],"")){ if (parameters_size>4&&strcmp(parameters[4],"x")&&strcmp(parameters[4],"")){
if (!check_is_password_hash(parameters[4])&&parameters[4][0]!='%'&&parameters[4][1]!='%'){ if (!strcmp(parameters[4]," ")){
pars = ENCRYPTED_LABEL;
} else if (!strcmp(parameters[4]," ")){
pars = NO_PASSWORD_LABEL; pars = NO_PASSWORD_LABEL;
} else if (!strcmp(parameters[4],"!*")){ } else if (!strcmp(parameters[4],"!*")){
pars = DENY_LOGIN_LABEL; pars = DENY_LOGIN_LABEL;
tooltip = AUTH_FORBIDDEN_LABEL;
} else if (parameters[4][0]=='!'){ } else if (parameters[4][0]=='!'){
pars = BLOCK_LOGIN_LABEL; pars = BLOCK_LOGIN_LABEL;
tooltip = AUTH_PASSWORD_LOCKED_LABEL;
} else if (!check_is_password_hash(parameters[4])&&parameters[4][0]!='%'&&parameters[4][1]!='%'){
pars = ENCRYPTED_LABEL;
} else { } else {
pars = UNENCRYPTED_LABEL; pars = UNENCRYPTED_LABEL;
} }
} else { } else {
pars = DEFAULT_USER_LABEL; pars = DEFAULT_USER_LABEL;
@ -182,6 +187,7 @@ void yon_interface_update(main_window *widgets){
2,parameters_size>1?parameters[0]:"", 2,parameters_size>1?parameters[0]:"",
3,parameters_size>3?parameters[3]:"", 3,parameters_size>3?parameters[3]:"",
4,pars, 4,pars,
5,tooltip,
-1); -1);
if(parameters) if(parameters)
free(parameters); free(parameters);
@ -1668,7 +1674,7 @@ void on_main_edit(GtkWidget *, main_window *widgets){
} }
} else { } else {
model = GTK_TREE_MODEL(widgets->GroupsList); model = GTK_TREE_MODEL(widgets->ConfigGroupsSort);
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree)),&model,&iter)){
ubl_settings_usergroups_group_creation_window *window = yon_ubl_settings_usergroups_group_creation_new(); ubl_settings_usergroups_group_creation_window *window = yon_ubl_settings_usergroups_group_creation_new();
gtk_window_set_title(GTK_WINDOW(window->CreateGroupWindow),CONFIGURE_GROUP_TITLE_LABEL); gtk_window_set_title(GTK_WINDOW(window->CreateGroupWindow),CONFIGURE_GROUP_TITLE_LABEL);
@ -1679,7 +1685,7 @@ void on_main_edit(GtkWidget *, main_window *widgets){
g_signal_connect(G_OBJECT(window->UserOkButton),"clicked",G_CALLBACK(on_group_save),dict); g_signal_connect(G_OBJECT(window->UserOkButton),"clicked",G_CALLBACK(on_group_save),dict);
char *name; char *name;
yon_tree_model_sort_filter_get_model_iter(GTK_TREE_MODEL_SORT(model),&iter,&child); yon_tree_model_sort_filter_get_model_iter(GTK_TREE_MODEL_SORT(model),&iter,&child);
gtk_tree_model_get(model,&child,1,&name,-1); gtk_tree_model_get(GTK_TREE_MODEL(widgets->GroupsList),&child,1,&name,-1);
char *config_string = yon_config_get_by_key(GROUPADD(name)); char *config_string = yon_config_get_by_key(GROUPADD(name));
char *sync_string = config(GROUPADD_SYNC(name)); char *sync_string = config(GROUPADD_SYNC(name));
if (!yon_char_is_empty(config_string)){ if (!yon_char_is_empty(config_string)){
@ -1917,7 +1923,7 @@ gboolean on_filter(GtkTreeModel* model, GtkTreeIter *iter, main_window *widgets)
} }
} else { } else {
if (((atoi(uid)>=main_config.MINUID&&atoi(uid)<=main_config.MAXUID))||show_system){ if (yon_char_is_empty(uid)||((atoi(uid)>=main_config.MINUID&&atoi(uid)<=main_config.MAXUID))||show_system){
system_id_found = 1; system_id_found = 1;
} }
@ -2264,6 +2270,10 @@ main_window *yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->SystemTree),"button-press-event",G_CALLBACK(on_system_menu_open),widgets->UsersMenu); g_signal_connect(G_OBJECT(widgets->SystemTree),"button-press-event",G_CALLBACK(on_system_menu_open),widgets->UsersMenu);
g_signal_connect(G_OBJECT(widgets->SystemGroupsTree),"button-press-event",G_CALLBACK(on_system_menu_open),widgets->GroupsMenu); g_signal_connect(G_OBJECT(widgets->SystemGroupsTree),"button-press-event",G_CALLBACK(on_system_menu_open),widgets->GroupsMenu);
gtk_tree_view_column_clicked(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->UsersTree),1));
gtk_tree_view_column_clicked(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->GroupsTree),0));
gtk_tree_view_column_clicked(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->SystemTree),1));
gtk_tree_view_column_clicked(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->SystemGroupsTree),0));
yon_system_load(widgets); yon_system_load(widgets);
gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(widgets->ConfigUsersFilter),(GtkTreeModelFilterVisibleFunc)on_filter,widgets,NULL); gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(widgets->ConfigUsersFilter),(GtkTreeModelFilterVisibleFunc)on_filter,widgets,NULL);

@ -279,5 +279,9 @@
#define BLOCK_LOGIN_LABEL _("Block login with password") #define BLOCK_LOGIN_LABEL _("Block login with password")
#define UNBOCK_LOGIN_LABEL _("Unblock login with password") #define UNBOCK_LOGIN_LABEL _("Unblock login with password")
#define CONFIRMATION_GROUP_DEPENDS_SINGLE_LABEL(target,depends) yon_char_unite(_("User(-s)")," <b>\"",depends,"\"</b> ",_("is included into main group of users")," <b>\"",target,"\"</b>, ",_("which will be deleted"),".\n",_("After reboot users")," <b>",depends,"</b> ",_("main group will be set to default group"),".",NULL) #define CONFIRMATION_GROUP_DEPENDS_SINGLE_LABEL(target,depends) yon_char_unite(_("User(-s)")," <b>\"",target,"\"</b> ",_("is included into main group of users")," <b>\"",depends,"\"</b>, ",_("which will be deleted"),".\n",_("After reboot users")," <b>",depends,"</b> ",_("main group will be set to default group"),".",NULL)
#define CONFIRMATION_GROUP_DEPENDS_MULTIPLE_LABEL _("Some of users, chosen for deletion, are included as main group for other users. This users will get default main group after reboot") #define CONFIRMATION_GROUP_DEPENDS_MULTIPLE_LABEL _("Some of users, chosen for deletion, are included as main group for other users. This users will get default main group after reboot")
#define AUTH_ALLOWED_LABEL _("User auth with password is allowed")
#define AUTH_FORBIDDEN_LABEL _("User auth is forbidden")
#define AUTH_PASSWORD_LOCKED_LABEL _("User auth with password is blocked for user.\nOther access methods are allowed (key auth, user switching etc).")

@ -43,6 +43,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name PasswordStatus --> <!-- column-name PasswordStatus -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name Tooltip -->
<column type="gchararray"/>
</columns> </columns>
</object> </object>
<object class="GtkTreeModelFilter" id="ConfigGroupsFilter"> <object class="GtkTreeModelFilter" id="ConfigGroupsFilter">
@ -69,6 +71,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name PasswordStatus --> <!-- column-name PasswordStatus -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name Tooltip -->
<column type="gchararray"/>
</columns> </columns>
</object> </object>
<object class="GtkTreeModelFilter" id="ConfigUsersFilter"> <object class="GtkTreeModelFilter" id="ConfigUsersFilter">
@ -414,7 +418,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<object class="GtkScrolledWindow"> <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="hscrollbar-policy">external</property>
<property name="shadow-type">in</property> <property name="shadow-type">in</property>
<child> <child>
<object class="GtkTreeView" id="UsersTree"> <object class="GtkTreeView" id="UsersTree">
@ -423,7 +426,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="model">ConfigUsersSort</property> <property name="model">ConfigUsersSort</property>
<property name="search-column">2</property> <property name="search-column">2</property>
<property name="enable-grid-lines">both</property> <property name="enable-grid-lines">both</property>
<property name="tooltip-column">5</property> <property name="tooltip-column">8</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
@ -447,6 +453,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="fixed-width">10</property> <property name="fixed-width">10</property>
<property name="min-width">10</property> <property name="min-width">10</property>
<property name="title" translatable="yes">UID</property> <property name="title" translatable="yes">UID</property>
<property name="sort-indicator">True</property>
<property name="sort-column-id">1</property> <property name="sort-column-id">1</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -638,7 +645,6 @@ status</property>
<object class="GtkScrolledWindow"> <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="hscrollbar-policy">external</property>
<property name="shadow-type">in</property> <property name="shadow-type">in</property>
<child> <child>
<object class="GtkTreeView" id="GroupsTree"> <object class="GtkTreeView" id="GroupsTree">
@ -647,12 +653,17 @@ status</property>
<property name="model">ConfigGroupsSort</property> <property name="model">ConfigGroupsSort</property>
<property name="search-column">1</property> <property name="search-column">1</property>
<property name="enable-grid-lines">both</property> <property name="enable-grid-lines">both</property>
<property name="tooltip-column">5</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
<property name="sizing">fixed</property> <property name="sizing">fixed</property>
<property name="fixed-width">10</property> <property name="fixed-width">10</property>
<property name="title" translatable="yes">GID</property> <property name="title" translatable="yes">GID</property>
<property name="sort-indicator">True</property>
<property name="sort-column-id">0</property> <property name="sort-column-id">0</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -815,6 +826,9 @@ status</property>
<property name="model">SystemUsersSort</property> <property name="model">SystemUsersSort</property>
<property name="search-column">2</property> <property name="search-column">2</property>
<property name="enable-grid-lines">both</property> <property name="enable-grid-lines">both</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
@ -836,6 +850,7 @@ status</property>
<property name="min-width">50</property> <property name="min-width">50</property>
<property name="title" translatable="yes">UID</property> <property name="title" translatable="yes">UID</property>
<property name="clickable">True</property> <property name="clickable">True</property>
<property name="sort-indicator">True</property>
<property name="sort-column-id">1</property> <property name="sort-column-id">1</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>
@ -1114,6 +1129,9 @@ without activity</property>
<property name="model">SystemGroupsSort</property> <property name="model">SystemGroupsSort</property>
<property name="search-column">0</property> <property name="search-column">0</property>
<property name="enable-grid-lines">both</property> <property name="enable-grid-lines">both</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="resizable">True</property> <property name="resizable">True</property>
@ -1121,6 +1139,7 @@ without activity</property>
<property name="min-width">50</property> <property name="min-width">50</property>
<property name="title" translatable="yes">GID</property> <property name="title" translatable="yes">GID</property>
<property name="clickable">True</property> <property name="clickable">True</property>
<property name="sort-indicator">True</property>
<property name="sort-column-id">0</property> <property name="sort-column-id">0</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkCellRendererText"/>

Loading…
Cancel
Save