From f5f819ead1453ef1b817f843890686a5685632cf Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Tue, 28 May 2024 15:37:12 +0200 Subject: Add user filter to greeter's user list. --- src/settings.vala | 2 ++ src/user-list.vala | 14 ++++++++++++++ 2 files changed, 16 insertions(+) (limited to 'src') diff --git a/src/settings.vala b/src/settings.vala index 7d1ce8f..6bdfe5d 100644 --- a/src/settings.vala +++ b/src/settings.vala @@ -56,6 +56,8 @@ public class AGSettings : Object public const string KEY_PLAY_READY_SOUND = "play-ready-sound"; public const string KEY_INDICATORS = "indicators"; public const string KEY_HIDDEN_USERS = "hidden-users"; + public const string KEY_USER_FILTER= "user-filter"; + public const string KEY_USER_FILTER_ALWAYS = "user-filter-always"; public const string KEY_GROUP_FILTER = "group-filter"; public const string KEY_IDLE_TIMEOUT = "idle-timeout"; public const string KEY_ACTIVATE_NUMLOCK = "activate-numlock"; diff --git a/src/user-list.vala b/src/user-list.vala index dee3850..3936768 100644 --- a/src/user-list.vala +++ b/src/user-list.vala @@ -1128,6 +1128,20 @@ public class UserList : GreeterList return; } + var user_filter = AGSettings.get_strv (AGSettings.KEY_USER_FILTER); + bool user_filter_always = AGSettings.get_boolean (AGSettings.KEY_USER_FILTER_ALWAYS); + + if ((user_filter_always) || (user_filter.length != 0)) + { + var match_found = false; + foreach (var username in user_filter) + if (username == user.name) + match_found = true; + // bail-out if user.name is not in user_filter + if (match_found == false) + return; + } + if (!filter_group (user.name)) return; -- cgit v1.2.3