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
=== modified file 'utils/lightdm-set-defaults.c'
--- utils/lightdm-set-defaults.c 2012-01-30 07:04:07 +0000
+++ utils/lightdm-set-defaults.c 2012-03-15 15:52:20 +0000
@@ -23,12 +23,15 @@
23#define SESSION_KEY_NAME "user-session"23#define SESSION_KEY_NAME "user-session"
24#define GREETER_KEY_NAME "greeter-session"24#define GREETER_KEY_NAME "greeter-session"
25#define AUTOLOGIN_KEY_NAME "autologin-user"25#define AUTOLOGIN_KEY_NAME "autologin-user"
26#define HIDE_USERS_KEY_NAME "greeter-hide-users"
2627
27#define IS_STRING_EMPTY(x) ((x)==NULL||(x)[0]=='\0')28#define IS_STRING_EMPTY(x) ((x)==NULL||(x)[0]=='\0')
2829
29static gboolean debug = FALSE;30static gboolean debug = FALSE;
30static gboolean keep_old = FALSE;31static gboolean keep_old = FALSE;
31static gboolean remove = FALSE;32static gboolean remove = FALSE;
33static gboolean hide_users = FALSE;
34static gboolean show_users = FALSE;
3235
33static char *session = NULL;36static char *session = NULL;
34static char *greeter = NULL;37static char *greeter = NULL;
@@ -42,6 +45,8 @@
42 { "session", 's', 0, G_OPTION_ARG_STRING, &session, N_("Set default session"), NULL },45 { "session", 's', 0, G_OPTION_ARG_STRING, &session, N_("Set default session"), NULL },
43 { "greeter", 'g', 0, G_OPTION_ARG_STRING, &greeter, N_("Set default greeter"), NULL },46 { "greeter", 'g', 0, G_OPTION_ARG_STRING, &greeter, N_("Set default greeter"), NULL },
44 { "autologin",'a', 0, G_OPTION_ARG_STRING, &autologin, N_("Set autologin user"), NULL },47 { "autologin",'a', 0, G_OPTION_ARG_STRING, &autologin, N_("Set autologin user"), NULL },
48 { "hide-users",'i', 0, G_OPTION_ARG_NONE, &hide_users, N_("Hide user list in greeter (exclusive to show-users)"), NULL },
49 { "show-users",'w', 0, G_OPTION_ARG_NONE, &show_users, N_("Show user list in greeter (exclusive to hide-users)"), NULL },
45 { NULL }50 { NULL }
46};51};
4752
@@ -52,6 +57,26 @@
52 gpointer unused_data) {};57 gpointer unused_data) {};
5358
54int59int
60update_boolean(const gboolean new_value,
61 gboolean keep_old,
62 const gchar *key_group,
63 const gchar *key_name,
64 GKeyFile *keyfile)
65{
66 gboolean success = TRUE;
67
68 if (keep_old)
69 g_debug ("keep-old mode: keep previous default value");
70 else {
71 g_debug ("Update to %d for %s", new_value, key_name);
72 g_key_file_set_boolean (keyfile, key_group, key_name, new_value);
73 }
74 if (!success)
75 return(2);
76 return(0);
77}
78
79int
55update_string(const gchar *default_value,80update_string(const gchar *default_value,
56 const gchar *new_value,81 const gchar *new_value,
57 gboolean keep_old,82 gboolean keep_old,
@@ -83,7 +108,7 @@
83 if (keep_old)108 if (keep_old)
84 g_debug ("keep-old mode: keep previous default value");109 g_debug ("keep-old mode: keep previous default value");
85 else {110 else {
86 g_debug ("Update to %s for %s", default_value, key_name);111 g_debug ("Update to %s for %s", new_value, key_name);
87 g_key_file_set_string (keyfile, key_group, key_name, new_value);112 g_key_file_set_string (keyfile, key_group, key_name, new_value);
88 }113 }
89 }114 }
@@ -124,7 +149,12 @@
124 g_error_free (error);149 g_error_free (error);
125 return 1;150 return 1;
126 }151 }
127 if (IS_STRING_EMPTY (session) && IS_STRING_EMPTY (greeter) && IS_STRING_EMPTY (autologin)) {152 if (show_users && hide_users) {
153 g_printerr (N_("show-users and hide-users are mutually exclusive\n"));
154 g_option_context_free (context);
155 return 1;
156 }
157 if (IS_STRING_EMPTY (session) && IS_STRING_EMPTY (greeter) && IS_STRING_EMPTY (autologin) && !show_users && !hide_users) {
128 g_printerr (N_("Wrong usage of the command\n%s"), g_option_context_get_help (context, FALSE, NULL));158 g_printerr (N_("Wrong usage of the command\n%s"), g_option_context_get_help (context, FALSE, NULL));
129 g_option_context_free (context);159 g_option_context_free (context);
130 return 1;160 return 1;
@@ -153,6 +183,8 @@
153 return_code = update_string (default_greeter, greeter, keep_old, remove, SEATDEFAULT_KEY_GROUP, GREETER_KEY_NAME, keyfile);183 return_code = update_string (default_greeter, greeter, keep_old, remove, SEATDEFAULT_KEY_GROUP, GREETER_KEY_NAME, keyfile);
154 if (!(IS_STRING_EMPTY (autologin)) && (return_code == 0))184 if (!(IS_STRING_EMPTY (autologin)) && (return_code == 0))
155 return_code = update_string (default_autologin, autologin, keep_old, remove, SEATDEFAULT_KEY_GROUP, AUTOLOGIN_KEY_NAME, keyfile);185 return_code = update_string (default_autologin, autologin, keep_old, remove, SEATDEFAULT_KEY_GROUP, AUTOLOGIN_KEY_NAME, keyfile);
186 if ((show_users || hide_users) && (return_code == 0))
187 return_code = update_boolean (hide_users, keep_old, SEATDEFAULT_KEY_GROUP, HIDE_USERS_KEY_NAME, keyfile);
156188
157 if(return_code == 0) {189 if(return_code == 0) {
158 s_data = g_key_file_to_data (keyfile, &size, &error);190 s_data = g_key_file_to_data (keyfile, &size, &error);

Subscribers

People subscribed via source and target branches