aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobert Tari <robert@tari.in>2025-05-05 02:05:14 +0200
committerRobert Tari <robert@tari.in>2025-05-05 02:05:14 +0200
commitd32c62a3a2d42a396e1a38d94f1ebb81bc65de32 (patch)
tree35a2ae3e0d39fcbaa0242d075ee2d63ea49615df /src
parentbef6d1fa943a2d083d9d9d8dcb990d46887ff3c9 (diff)
downloadarctica-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.vala1
-rw-r--r--src/user-list.vala30
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);