Merge lp:~mfisch/lightdm/set-defaults-add-option into lp:lightdm

Proposed by Matt Fischer
Status: Merged
Merged at revision: 1460
Proposed branch: lp:~mfisch/lightdm/set-defaults-add-option
Merge into: lp:lightdm
Diff against target: 87 lines (+34/-2)
1 file modified
utils/lightdm-set-defaults.c (+34/-2)
To merge this branch: bzr merge lp:~mfisch/lightdm/set-defaults-add-option
Reviewer Review Type Date Requested Status
Robert Ancell Approve
Review via email: mp+97683@code.launchpad.net

Description of the change

Adds an option to lightdm-set-defaults to set or unset the greeter-hide-users option. This is useful in cases where the authentication is coming from a remote server and we do not have a full user list before login.

Here's my testing:

mfisch@caprica:~/experiments/lightdm-1.1.7/utils$ sudo ./lightdm-set-defaults -i
mfisch@caprica:~/experiments/lightdm-1.1.7/utils$ cat /etc/lightdm/lightdm.conf

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-hide-users=true

mfisch@caprica:~/experiments/lightdm-1.1.7/utils$ sudo ./lightdm-set-defaults -w
mfisch@caprica:~/experiments/lightdm-1.1.7/utils$ cat /etc/lightdm/lightdm.conf
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-hide-users=false

mfisch@caprica:~/experiments/lightdm-1.1.7/utils$ sudo ./lightdm-set-defaults -w -i
show-users and hide-users are mutually exclusive

mfisch@caprica:~/experiments/lightdm-1.1.7/utils$ cat /etc/lightdm/lightdm.conf
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-hide-users=false

To post a comment you must log in.
Revision history for this message
Robert Ancell (robert-ancell) wrote :

Great! Will be in 1.1.9

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'utils/lightdm-set-defaults.c'
2--- utils/lightdm-set-defaults.c 2012-01-30 07:04:07 +0000
3+++ utils/lightdm-set-defaults.c 2012-03-15 15:52:20 +0000
4@@ -23,12 +23,15 @@
5 #define SESSION_KEY_NAME "user-session"
6 #define GREETER_KEY_NAME "greeter-session"
7 #define AUTOLOGIN_KEY_NAME "autologin-user"
8+#define HIDE_USERS_KEY_NAME "greeter-hide-users"
9
10 #define IS_STRING_EMPTY(x) ((x)==NULL||(x)[0]=='\0')
11
12 static gboolean debug = FALSE;
13 static gboolean keep_old = FALSE;
14 static gboolean remove = FALSE;
15+static gboolean hide_users = FALSE;
16+static gboolean show_users = FALSE;
17
18 static char *session = NULL;
19 static char *greeter = NULL;
20@@ -42,6 +45,8 @@
21 { "session", 's', 0, G_OPTION_ARG_STRING, &session, N_("Set default session"), NULL },
22 { "greeter", 'g', 0, G_OPTION_ARG_STRING, &greeter, N_("Set default greeter"), NULL },
23 { "autologin",'a', 0, G_OPTION_ARG_STRING, &autologin, N_("Set autologin user"), NULL },
24+ { "hide-users",'i', 0, G_OPTION_ARG_NONE, &hide_users, N_("Hide user list in greeter (exclusive to show-users)"), NULL },
25+ { "show-users",'w', 0, G_OPTION_ARG_NONE, &show_users, N_("Show user list in greeter (exclusive to hide-users)"), NULL },
26 { NULL }
27 };
28
29@@ -52,6 +57,26 @@
30 gpointer unused_data) {};
31
32 int
33+update_boolean(const gboolean new_value,
34+ gboolean keep_old,
35+ const gchar *key_group,
36+ const gchar *key_name,
37+ GKeyFile *keyfile)
38+{
39+ gboolean success = TRUE;
40+
41+ if (keep_old)
42+ g_debug ("keep-old mode: keep previous default value");
43+ else {
44+ g_debug ("Update to %d for %s", new_value, key_name);
45+ g_key_file_set_boolean (keyfile, key_group, key_name, new_value);
46+ }
47+ if (!success)
48+ return(2);
49+ return(0);
50+}
51+
52+int
53 update_string(const gchar *default_value,
54 const gchar *new_value,
55 gboolean keep_old,
56@@ -83,7 +108,7 @@
57 if (keep_old)
58 g_debug ("keep-old mode: keep previous default value");
59 else {
60- g_debug ("Update to %s for %s", default_value, key_name);
61+ g_debug ("Update to %s for %s", new_value, key_name);
62 g_key_file_set_string (keyfile, key_group, key_name, new_value);
63 }
64 }
65@@ -124,7 +149,12 @@
66 g_error_free (error);
67 return 1;
68 }
69- if (IS_STRING_EMPTY (session) && IS_STRING_EMPTY (greeter) && IS_STRING_EMPTY (autologin)) {
70+ if (show_users && hide_users) {
71+ g_printerr (N_("show-users and hide-users are mutually exclusive\n"));
72+ g_option_context_free (context);
73+ return 1;
74+ }
75+ if (IS_STRING_EMPTY (session) && IS_STRING_EMPTY (greeter) && IS_STRING_EMPTY (autologin) && !show_users && !hide_users) {
76 g_printerr (N_("Wrong usage of the command\n%s"), g_option_context_get_help (context, FALSE, NULL));
77 g_option_context_free (context);
78 return 1;
79@@ -153,6 +183,8 @@
80 return_code = update_string (default_greeter, greeter, keep_old, remove, SEATDEFAULT_KEY_GROUP, GREETER_KEY_NAME, keyfile);
81 if (!(IS_STRING_EMPTY (autologin)) && (return_code == 0))
82 return_code = update_string (default_autologin, autologin, keep_old, remove, SEATDEFAULT_KEY_GROUP, AUTOLOGIN_KEY_NAME, keyfile);
83+ if ((show_users || hide_users) && (return_code == 0))
84+ return_code = update_boolean (hide_users, keep_old, SEATDEFAULT_KEY_GROUP, HIDE_USERS_KEY_NAME, keyfile);
85
86 if(return_code == 0) {
87 s_data = g_key_file_to_data (keyfile, &size, &error);

Subscribers

People subscribed via source and target branches