summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Cameron <brian.cameron@oracle.com>2011-04-07 12:01:48 -0500
committerBrian Cameron <brian.cameron@oracle.com>2011-04-07 12:01:48 -0500
commit55caa12c1ba79008484bdca555de51d8c4f7856a (patch)
tree84e19ff9a58765f4d643ad51c3ad74502046094a
parent752b74c84b2dadbe7a22a30d9128245babb467c9 (diff)
downloadgdm-55caa12c1ba79008484bdca555de51d8c4f7856a.tar.gz
Fix for bug #624298, corrects Solaris RBAC integration so it works.
-rw-r--r--gui/simple-greeter/gdm-greeter-panel.c35
1 files changed, 19 insertions, 16 deletions
diff --git a/gui/simple-greeter/gdm-greeter-panel.c b/gui/simple-greeter/gdm-greeter-panel.c
index a852646f..e10500e2 100644
--- a/gui/simple-greeter/gdm-greeter-panel.c
+++ b/gui/simple-greeter/gdm-greeter-panel.c
@@ -652,21 +652,6 @@ get_show_restart_buttons (GdmGreeterPanel *panel)
g_error_free (error);
}
-#ifdef ENABLE_RBAC_SHUTDOWN
- {
- char *username;
-
- username = g_get_user_name ();
- if (username == NULL || !chkauthattr (RBAC_SHUTDOWN_KEY, username)) {
- show = FALSE;
- g_debug ("GdmGreeterPanel: Not showing stop/restart buttons for user %s due to RBAC key %s",
- username, RBAC_SHUTDOWN_KEY);
- } else {
- g_debug ("GdmGreeterPanel: Showing stop/restart buttons for user %s due to RBAC key %s",
- username, RBAC_SHUTDOWN_KEY);
- }
- }
-#endif
return show;
}
@@ -725,6 +710,7 @@ setup_panel (GdmGreeterPanel *panel)
NaTray *tray;
GtkWidget *spacer;
int padding;
+ gboolean show_restart_buttons = TRUE;
gdm_profile_start (NULL);
@@ -793,7 +779,24 @@ setup_panel (GdmGreeterPanel *panel)
gtk_widget_show (panel->priv->hostname_label);
}
- if (panel->priv->display_is_local || get_show_restart_buttons (panel)) {
+#ifdef ENABLE_RBAC_SHUTDOWN
+ {
+ char *username;
+
+ username = g_get_user_name ();
+ if (username == NULL || !chkauthattr (RBAC_SHUTDOWN_KEY, username)) {
+ show_restart_buttons = FALSE;
+ g_debug ("GdmGreeterPanel: Not showing stop/restart buttons for user %s due to RBAC key %s",
+ username ? username : "(null)", RBAC_SHUTDOWN_KEY);
+ } else {
+ g_debug ("GdmGreeterPanel: Showing stop/restart buttons for user %s due to RBAC key %s",
+ username, RBAC_SHUTDOWN_KEY);
+ }
+ }
+#endif
+
+ if (show_restart_buttons &&
+ (panel->priv->display_is_local || get_show_restart_buttons (panel))) {
GtkWidget *menu_item;
GtkWidget *image;