diff options
author | Robert Tari <robert@tari.in> | 2025-05-05 02:05:14 +0200 |
---|---|---|
committer | Robert Tari <robert@tari.in> | 2025-05-05 02:05:14 +0200 |
commit | d32c62a3a2d42a396e1a38d94f1ebb81bc65de32 (patch) | |
tree | 35a2ae3e0d39fcbaa0242d075ee2d63ea49615df /src | |
parent | bef6d1fa943a2d083d9d9d8dcb990d46887ff3c9 (diff) | |
download | arctica-greeter-d32c62a3a2d42a396e1a38d94f1ebb81bc65de32.tar.gz arctica-greeter-d32c62a3a2d42a396e1a38d94f1ebb81bc65de32.tar.bz2 arctica-greeter-d32c62a3a2d42a396e1a38d94f1ebb81bc65de32.zip |
Allow filtering out users from hidden groups
Diffstat (limited to 'src')
-rw-r--r-- | src/settings.vala | 1 | ||||
-rw-r--r-- | src/user-list.vala | 30 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/settings.vala b/src/settings.vala index 12c1265..865fe4a 100644 --- a/src/settings.vala +++ b/src/settings.vala @@ -57,6 +57,7 @@ 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_HIDDEN_GROUPS = "hidden-groups"; 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"; diff --git a/src/user-list.vala b/src/user-list.vala index 3936768..3abfb06 100644 --- a/src/user-list.vala +++ b/src/user-list.vala @@ -87,10 +87,28 @@ public class UserList : GreeterList } var hidden_users = AGSettings.get_strv (AGSettings.KEY_HIDDEN_USERS); + string[] lHiddenGroups = AGSettings.get_strv (AGSettings.KEY_HIDDEN_GROUPS); + if (!value) { foreach (var username in hidden_users) remove_entry (username); + + foreach (string sGroup in lHiddenGroups) + { + LightDM.UserList lUsers = LightDM.UserList.get_instance (); + + foreach (LightDM.User pUser in lUsers.users) + { + bool bInGroup = in_group (sGroup, pUser.name); + + if (bInGroup) + { + remove_entry (pUser.name); + } + } + } + return; } @@ -1126,6 +1144,18 @@ public class UserList : GreeterList foreach (var username in hidden_users) if (username == user.name) return; + + string[] lHiddenGroups = AGSettings.get_strv (AGSettings.KEY_HIDDEN_GROUPS); + + foreach (string sGroup in lHiddenGroups) + { + bool bInGroup = in_group (sGroup, user.name); + + if (bInGroup) + { + return; + } + } } var user_filter = AGSettings.get_strv (AGSettings.KEY_USER_FILTER); |