aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/org.ArcticaProject.arctica-greeter.gschema.xml4
-rw-r--r--src/Makefile.am2
-rw-r--r--src/animate-timer.vala4
-rw-r--r--src/settings.vala1
-rw-r--r--src/user-list.vala30
5 files changed, 38 insertions, 3 deletions
diff --git a/data/org.ArcticaProject.arctica-greeter.gschema.xml b/data/org.ArcticaProject.arctica-greeter.gschema.xml
index 03e3bce..b5c2cab 100644
--- a/data/org.ArcticaProject.arctica-greeter.gschema.xml
+++ b/data/org.ArcticaProject.arctica-greeter.gschema.xml
@@ -193,6 +193,10 @@
<default>[]</default>
<summary>List of usernames that are hidden from the userlist until a special key combination is hit.</summary>
</key>
+ <key name="hidden-groups" type="as">
+ <default>[]</default>
+ <summary>List of user groups that are hidden from the userlist until a special key combination is hit.</summary>
+ </key>
<key name="user-filter" type="as">
<default>[]</default>
<summary>List of usernames that are to be shown in the userlist only.</summary>
diff --git a/src/Makefile.am b/src/Makefile.am
index bb91f59..7ddcf57 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -91,7 +91,5 @@ arctica_greeter_LDADD = \
logo_generator_LDADD = $(arctica_greeter_LDADD)
-arctica_greeter_vala.stamp: $(top_srcdir)/config.h
-
DISTCLEANFILES = \
Makefile.in
diff --git a/src/animate-timer.vala b/src/animate-timer.vala
index 9f92448..4879cb0 100644
--- a/src/animate-timer.vala
+++ b/src/animate-timer.vala
@@ -2,6 +2,7 @@
*
* Copyright (C) 2011,2012 Canonical Ltd
* Copyright (C) 2015 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+ * Copyright (C) 2025 Robert Tari
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 as
@@ -18,6 +19,7 @@
* Authors: Robert Ancell <robert.ancell@canonical.com>
* Michael Terry <michael.terry@canonical.com>
* Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+ * Robert Tari <robert@tari.in>
*/
private class AnimateTimer : Object
@@ -32,7 +34,7 @@ private class AnimateTimer : Object
public const int SLOW = 1000; /* Good for animations that convey information that is only presented in the animation */
/* speed is in milliseconds */
- public unowned EasingFunc easing_func { get; private set; }
+ public unowned EasingFunc easing_func;
public int speed { get; set; }
public bool is_running { get { return timeout != 0; } }
public double progress { get; private set; }
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);