patches/gnome-system-tools-07-users.diff
author yippi
Mon, 27 Sep 2010 21:07:51 +0000
changeset 20108 51df67ca9307
parent 14401 b95c41e67d3f
permissions -rw-r--r--
I had these modules listed as being owned by me, but they are really owned by wangke, correcting.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
     1
diff -urN gnome-system-tools-2.14.0.orig/src/users/Makefile.am gnome-system-tools-2.14.0/src/users/Makefile.am
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
     2
--- gnome-system-tools-2.14.0.orig/src/users/Makefile.am	2008-08-20 09:37:14.200348000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
     3
+++ gnome-system-tools-2.14.0/src/users/Makefile.am	2008-08-22 07:19:34.724969000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
     4
@@ -32,6 +32,7 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
     5
 	user-group-xml.c user-group-xml.h \
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
     6
 	profiles-table.c profiles-table.h \
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
     7
 	profile-settings.c profile-settings.h \
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
     8
-	privileges-table.c privileges-table.h
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
     9
+	privileges-table.c privileges-table.h \
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    10
+	roles-table.c roles-table.h
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    11
 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    12
 toolpixmaps =
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    13
diff -urN gnome-system-tools-2.14.0.orig/src/users/callbacks.c gnome-system-tools-2.14.0/src/users/callbacks.c
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    14
--- gnome-system-tools-2.14.0.orig/src/users/callbacks.c	2008-08-20 09:37:14.203441000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    15
+++ gnome-system-tools-2.14.0/src/users/callbacks.c	2008-08-20 09:39:07.030442000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    16
@@ -641,7 +641,11 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    17
 	combo_add_shells (shells_combo);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    18
 	combo_add_groups (groups_option_menu, TRUE);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    19
 	profile_settings_set_data (node);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    20
+#ifndef __sun
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    21
 	populate_privileges_table_from_profile (privileges, node);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    22
+#else
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    23
+	populate_privileges_table(privileges, node);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    24
+#endif
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    25
 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    26
 	g_object_set_data (G_OBJECT (dialog), "data", node);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    27
 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    28
diff -urN gnome-system-tools-2.14.0.orig/src/users/group-settings.c gnome-system-tools-2.14.0/src/users/group-settings.c
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    29
--- gnome-system-tools-2.14.0.orig/src/users/group-settings.c	2008-08-20 09:37:14.205458000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    30
+++ gnome-system-tools-2.14.0/src/users/group-settings.c	2008-08-20 09:39:07.023541000 +0800
7859
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    31
@@ -79,6 +79,7 @@
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    32
 	GtkWidget *group_settings_all = gst_dialog_get_widget (tool->main_dialog, "group_settings_all");
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    33
 	GtkWidget *group_settings_members = gst_dialog_get_widget (tool->main_dialog, "group_settings_members");
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    34
 	GtkWidget *widget;
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    35
+	GtkSpinButton *spin_button;
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    36
 	gchar     *buf;
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    37
 	GList *group_settings_all_list = NULL;
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    38
 	
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    39
@@ -90,11 +91,12 @@
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    40
 	widget = gst_dialog_get_widget (tool->main_dialog, "group_settings_dialog");
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    41
 	gtk_window_set_title (GTK_WINDOW (widget), _("Create New Group"));
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    42
 
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    43
+	spin_button = GTK_SPIN_BUTTON (gst_dialog_get_widget (tool->main_dialog, "group_settings_gid"));
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    44
+	gtk_spin_button_set_range (spin_button, 0, IDMAX);
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    45
 	/* Fill in first available gid */
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    46
 	buf = (gchar *) find_new_id (gd->node, NULL);
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    47
 	if (buf) {
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    48
-		gtk_spin_button_set_value (GTK_SPIN_BUTTON (gst_dialog_get_widget (tool->main_dialog, "group_settings_gid")), 
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    49
-		                           g_strtod (buf, NULL));
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    50
+		gtk_spin_button_set_value (spin_button, g_strtod (buf, NULL));
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    51
 		g_free (buf);
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    52
 	}
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    53
 
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    54
@@ -357,6 +359,7 @@
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    55
 	txt = gst_xml_get_child_content (gd->node, "gid");
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    56
 	w0 = gst_dialog_get_widget (tool->main_dialog, "group_settings_gid");
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    57
 	gtk_widget_set_sensitive (w0, gst_tool_get_access (tool));
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    58
+	gtk_spin_button_set_range (GTK_SPIN_BUTTON (w0), 0, IDMAX);
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    59
 	gtk_spin_button_set_value (GTK_SPIN_BUTTON (w0), g_strtod (txt, NULL));
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    60
 
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    61
 	/* Show group settings dialog */
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    62
diff -urN gnome-system-tools-2.14.0.orig/src/users/passwd.c gnome-system-tools-2.14.0/src/users/passwd.c
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    63
--- gnome-system-tools-2.14.0.orig/src/users/passwd.c	2008-08-20 09:37:14.206361000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    64
+++ gnome-system-tools-2.14.0/src/users/passwd.c	2008-08-20 09:39:07.029785000 +0800
7859
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    65
@@ -191,10 +191,14 @@
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    66
 	else
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    67
 		password = g_strdup (pwd);
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    68
 
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    69
+#ifdef USE_AUTHEN_PAM
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    70
+	buf = g_strdup(password);
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    71
+#else
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    72
 	if (uses_md5 ()) 
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    73
 		buf = g_strdup (crypt_md5 (password, rand_str (salt, 8)));
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    74
 	else
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    75
 		buf = g_strdup (crypt (password, rand_str (salt, 2)));
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    76
+#endif
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    77
 
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    78
 	gst_xml_set_child_content (node, "password", buf);
8517272aace0 Unbump gnome-system-tools back to 2.14.0. Other modules need work before it can
dc144907
parents:
diff changeset
    79
 
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    80
diff -urN gnome-system-tools-2.14.0.orig/src/users/privileges-table.c gnome-system-tools-2.14.0/src/users/privileges-table.c
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    81
--- gnome-system-tools-2.14.0.orig/src/users/privileges-table.c	2008-08-20 09:37:14.222946000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
    82
+++ gnome-system-tools-2.14.0/src/users/privileges-table.c	2008-08-20 09:39:07.031073000 +0800
8121
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    83
@@ -97,6 +97,7 @@
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    84
 	create_privileges_table (list);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    85
 }
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    86
 
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    87
+#ifndef __sun
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    88
 void
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    89
 populate_privileges_table (GtkWidget *list, gchar *username)
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    90
 {
8438
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
    91
@@ -271,3 +272,152 @@
8121
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    92
 		valid = gtk_tree_model_iter_next (model, &iter);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    93
 	}
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    94
 }
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    95
+#else /* __sun */
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    96
+static gboolean
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    97
+user_has_rbac_profile( xmlNodePtr user_node, gchar *profile_name ) 
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    98
+{
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
    99
+    xmlNodePtr  user_rbac, assigned_profiles, profile;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   100
+    gchar       *buf;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   101
+    gboolean    rval = FALSE;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   102
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   103
+    user_rbac = gst_xml_element_find_first (user_node, "rbac");
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   104
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   105
+    /* It's possible that the profile has no entries */
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   106
+    if (user_rbac == NULL)
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   107
+        return(FALSE);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   108
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   109
+    assigned_profiles = gst_xml_element_find_first (user_rbac, "rbac_profiles");
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   110
+    g_return_val_if_fail( assigned_profiles != NULL, FALSE );
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   111
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   112
+    for (profile = gst_xml_element_find_first (assigned_profiles, "rbac_profile");
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   113
+         profile != NULL;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   114
+         profile = gst_xml_element_find_next (profile, "rbac_profile")) {
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   115
+            buf = gst_xml_element_get_content (profile);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   116
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   117
+            if (strcmp (profile_name, buf) == 0) {
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   118
+                g_free (buf);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   119
+                rval = TRUE;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   120
+                break;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   121
+            }
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   122
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   123
+            g_free (buf);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   124
+    }
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   125
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   126
+    return rval;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   127
+}
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   128
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   129
+void
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   130
+populate_privileges_table (GtkWidget *list, xmlNodePtr user_node)
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   131
+{
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   132
+	GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (list));
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   133
+	xmlNodePtr    rbacdb_root = get_root_node (NODE_RBAC);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   134
+	xmlNodePtr    profiles, profile, user;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   135
+	GtkTreeIter   iter;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   136
+	gchar        *name, *desc, *buf;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   137
+	gboolean      val;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   138
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   139
+	gtk_list_store_clear (GTK_LIST_STORE (model));
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   140
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   141
+	profiles = gst_xml_element_find_first (rbacdb_root, "rbac_profiles");
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   142
+	for (profile = gst_xml_element_find_first (profiles, "rbac_profile");
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   143
+	     profile != NULL;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   144
+	     profile = gst_xml_element_find_next (profile, "rbac_profile")) {
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   145
+		name = gst_xml_get_child_content (profile, "name");
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   146
+		desc = gst_xml_get_child_content (profile, "description");
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   147
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   148
+		if (name) {
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   149
+                        gchar *combined_str;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   150
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   151
+			val = FALSE;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   152
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   153
+			/* check whether the user already has RBAC profile */
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   154
+                        if (user_node ) {
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   155
+                            if ( user_has_rbac_profile( user_node, name )) {
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   156
+                                val = TRUE;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   157
+                            }
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   158
+                        }
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   159
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   160
+                        if ( desc != NULL ) {
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   161
+                            combined_str = g_strdup_printf("%s (%s)", name, desc );
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   162
+                        }
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   163
+                        else {
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   164
+                            combined_str = name;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   165
+                        }
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   166
+			
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   167
+			gtk_list_store_append (GTK_LIST_STORE (model), &iter);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   168
+			gtk_list_store_set (GTK_LIST_STORE (model), &iter,
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   169
+					    0, val,
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   170
+					    1, combined_str,
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   171
+					    2, name,
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   172
+					    -1);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   173
+                        if ( desc != NULL && combined_str != name ) 
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   174
+                            g_free( combined_str );
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   175
+			g_free (desc);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   176
+			g_free (name);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   177
+		}
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   178
+	}
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   179
+}
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   180
+
8438
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   181
+static void
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   182
+privileges_save_data (xmlNodePtr profile, const gchar* widget_name )
8121
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   183
+{
8438
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   184
+        
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   185
+	GtkWidget    *list  = NULL;
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   186
+	GtkTreeModel *model = NULL;
8121
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   187
+	GtkTreeIter   iter;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   188
+	xmlNodePtr    rbac_node, rbac_profiles_node, rbac_profile_node;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   189
+	gboolean      valid, active;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   190
+	gchar        *name;
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   191
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   192
+	g_return_if_fail (profile != NULL);
8438
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   193
+	g_return_if_fail (widget_name != NULL);
8121
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   194
+
8438
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   195
+	list  = gst_dialog_get_widget (tool->main_dialog, widget_name);
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   196
+	model = gtk_tree_view_get_model (GTK_TREE_VIEW (list));
8121
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   197
+	rbac_node = gst_xml_element_find_first (profile, "rbac");
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   198
+        
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   199
+        if ( rbac_node != NULL ) {
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   200
+	    rbac_profiles_node = gst_xml_element_find_first (rbac_node, "rbac_profiles");
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   201
+            if (rbac_profiles_node) {
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   202
+                gst_xml_element_destroy_children (rbac_profiles_node);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   203
+            }
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   204
+            else {
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   205
+                rbac_profiles_node = gst_xml_element_add (profile, "rbac_profiles");
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   206
+            }
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   207
+        }
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   208
+        else {
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   209
+            rbac_node =  gst_xml_element_add (profile, "rbac");
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   210
+            rbac_profiles_node = gst_xml_element_add (rbac_node, "rbac_profiles");
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   211
+        }
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   212
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   213
+	valid = gtk_tree_model_get_iter_first (model, &iter);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   214
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   215
+	while (valid) {
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   216
+		gtk_tree_model_get (model, &iter,
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   217
+				    0, &active,
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   218
+				    2, &name,
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   219
+				    -1);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   220
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   221
+		if (active) {
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   222
+			rbac_profile_node = gst_xml_element_add (rbac_profiles_node, "rbac_profile");
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   223
+			gst_xml_element_set_content (rbac_profile_node, name);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   224
+		}
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   225
+
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   226
+		g_free (name);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   227
+		valid = gtk_tree_model_iter_next (model, &iter);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   228
+	}
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   229
+}
8438
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   230
+
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   231
+void
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   232
+user_privileges_save_data (xmlNodePtr node)
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   233
+{
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   234
+    privileges_save_data( node, "user_privileges");
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   235
+}
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   236
+
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   237
+void
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   238
+profile_privileges_save_data (xmlNodePtr node)
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   239
+{
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   240
+    privileges_save_data( node, "profile_privileges");
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   241
+}
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   242
+
8121
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   243
+#endif /* __sun */
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   244
diff -urN gnome-system-tools-2.14.0.orig/src/users/privileges-table.h gnome-system-tools-2.14.0/src/users/privileges-table.h
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   245
--- gnome-system-tools-2.14.0.orig/src/users/privileges-table.h	2008-08-20 09:37:14.223386000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   246
+++ gnome-system-tools-2.14.0/src/users/privileges-table.h	2008-08-20 09:39:07.031423000 +0800
8438
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   247
@@ -27,7 +27,13 @@
8121
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   248
 void     create_user_privileges_table      (void);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   249
 void     create_profile_privileges_table   (void);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   250
 
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   251
+#ifndef __sun
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   252
 void     populate_privileges_table         (GtkWidget*, gchar*);
8438
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   253
+void     user_privileges_save_data         (xmlNodePtr);
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   254
+void     profile_privileges_save_data      (xmlNodePtr);
8121
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   255
+#else
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   256
+void     populate_privileges_table          (GtkWidget *list, xmlNodePtr user_node);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   257
+#endif
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   258
 void     populate_privileges_table_from_profile (GtkWidget*, xmlNodePtr);
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   259
 
409a296e8eb2 2006-09-11 Darren Kenny <[email protected]>
darrenk
parents: 7859
diff changeset
   260
 GList*   user_privileges_get_list          (GList*);
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   261
diff -urN gnome-system-tools-2.14.0.orig/src/users/profile-settings.c gnome-system-tools-2.14.0/src/users/profile-settings.c
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   262
--- gnome-system-tools-2.14.0.orig/src/users/profile-settings.c	2008-08-20 09:37:14.222032000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   263
+++ gnome-system-tools-2.14.0/src/users/profile-settings.c	2008-08-20 09:39:07.033086000 +0800
8438
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   264
@@ -110,7 +110,11 @@
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   265
 	gst_xml_element_add_with_content (node, "mailbox_dir", "/var/mail");
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   266
 	gst_xml_element_add_with_content (node, "skel_dir",    "/etc/skel/");
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   267
 	gst_xml_element_add_with_content (node, "login_defs",  "1");
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   268
+#ifndef __sun
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   269
 	profile_groups_save_data (node);
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   270
+#else
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   271
+	profile_privileges_save_data (node);
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   272
+#endif
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   273
 }
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   274
 
cacc90ef04d9 2006-10-27 Darren Kenny <[email protected]>
dkenny
parents: 8436
diff changeset
   275
 gchar*
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   276
diff -urN gnome-system-tools-2.14.0.orig/src/users/roles-table.c gnome-system-tools-2.14.0/src/users/roles-table.c
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   277
--- gnome-system-tools-2.14.0.orig/src/users/roles-table.c	1970-01-01 08:00:00.000000000 +0800
13396
8d391189a7d8 2008-09-04 Jim Li <[email protected]>
jim
parents: 13240
diff changeset
   278
+++ gnome-system-tools-2.14.0/src/users/roles-table.c	2008-09-04 06:47:02.898745000 +0800
8d391189a7d8 2008-09-04 Jim Li <[email protected]>
jim
parents: 13240
diff changeset
   279
@@ -0,0 +1,217 @@
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   280
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   281
+/* roles-table.c: this file is part of users-admin, a ximian-setup-tool frontend 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   282
+ * for user administration.
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   283
+ * 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   284
+ * Copyright (C) 2004 Carlos Garnacho
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   285
+ * Copyright (C) 2005 Carlos Garnacho, Sivan Greenberg
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   286
+ *
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   287
+ * This program is free software; you can redistribute it and/or modify
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   288
+ * it under the terms of the GNU General Public License as
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   289
+ * published by the Free Software Foundation; either version 2 of the
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   290
+ * License, or (at your option) any later version.
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   291
+ *
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   292
+ * This program is distributed in the hope that it will be useful,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   293
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   294
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   295
+ * GNU General Public License for more details.
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   296
+ *
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   297
+ * You should have received a copy of the GNU General Public License
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   298
+ * along with this program; if not, write to the Free Software
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   299
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   300
+ *
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   301
+ * Authors: Carlos Garnacho Parro <[email protected]>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   302
+ *          Sivan Greenberg       <[email protected]>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   303
+ */
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   304
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   305
+#ifdef HAVE_CONFIG_H
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   306
+#  include <config.h>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   307
+#endif
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   308
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   309
+#include <gtk/gtk.h>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   310
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   311
+#include "gst.h"
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   312
+#include "roles-table.h"
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   313
+#include "user_group.h"
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   314
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   315
+extern GstTool *tool;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   316
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   317
+static void
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   318
+on_user_role_toggled (GtkCellRendererToggle *cell, gchar *path_str, gpointer data)
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   319
+{
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   320
+	GtkTreeModel *model = (GtkTreeModel*) data;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   321
+	GtkTreePath  *path  = gtk_tree_path_new_from_string (path_str);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   322
+	GtkTreeIter   iter;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   323
+	gboolean      value;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   324
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   325
+	gtk_tree_model_get_iter (GTK_TREE_MODEL (model), &iter, path);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   326
+	gtk_tree_model_get (model, &iter, 0, &value, -1);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   327
+	gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, !value, -1);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   328
+}
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   329
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   330
+void
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   331
+create_roles_table (void)
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   332
+{
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   333
+	GtkTreeModel      *model;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   334
+	GtkCellRenderer   *renderer;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   335
+	GtkTreeViewColumn *column;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   336
+	GtkTreeIter        iter;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   337
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   338
+	GtkWidget *list = gst_dialog_get_widget (tool->main_dialog, "user_roles");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   339
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   340
+	model = GTK_TREE_MODEL (gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_STRING));
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   341
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   342
+	gtk_tree_view_set_model (GTK_TREE_VIEW (list), model);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   343
+	g_object_unref (model);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   344
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   345
+	column = gtk_tree_view_column_new ();
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   346
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   347
+	renderer = gtk_cell_renderer_toggle_new ();
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   348
+	gtk_tree_view_column_pack_start (column, renderer, FALSE);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   349
+	gtk_tree_view_column_set_attributes (column,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   350
+					     renderer,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   351
+					     "active", 0,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   352
+					     NULL);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   353
+	g_signal_connect (G_OBJECT (renderer), "toggled", G_CALLBACK (on_user_role_toggled), model);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   354
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   355
+	renderer = gtk_cell_renderer_text_new ();
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   356
+	gtk_tree_view_column_pack_end (column, renderer, TRUE);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   357
+	gtk_tree_view_column_set_attributes (column,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   358
+					     renderer,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   359
+					     "text", 1,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   360
+					     NULL);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   361
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   362
+	gtk_tree_view_column_set_sort_column_id (column, 1);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   363
+	gtk_tree_view_insert_column (GTK_TREE_VIEW (list), column, 0);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   364
+	gtk_tree_view_column_clicked (column);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   365
+}
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   366
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   367
+#ifndef __sun
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   368
+#else /* __sun */
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   369
+static gboolean
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   370
+user_has_rbac_role( xmlNodePtr user_node, gchar *role_name ) 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   371
+{
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   372
+    xmlNodePtr  user_role, assigned_roles, role;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   373
+    gchar       *buf;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   374
+    gboolean    rval = FALSE;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   375
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   376
+    user_role = gst_xml_element_find_first (user_node, "role");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   377
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   378
+    /* It's possible that the profile has no entries */
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   379
+    if (user_role == NULL)
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   380
+        return(FALSE);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   381
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   382
+    assigned_roles = gst_xml_element_find_first (user_role, "rbac_roles");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   383
+    g_return_val_if_fail( assigned_roles != NULL, FALSE );
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   384
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   385
+    for (role = gst_xml_element_find_first (assigned_roles, "rbac_role");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   386
+         role != NULL;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   387
+         role = gst_xml_element_find_next (role, "rbac_role")) {
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   388
+            buf = gst_xml_element_get_content (role);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   389
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   390
+            if (strcmp (role_name, buf) == 0) {
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   391
+                g_free (buf);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   392
+                rval = TRUE;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   393
+                break;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   394
+            }
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   395
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   396
+            g_free (buf);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   397
+    }
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   398
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   399
+    return rval;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   400
+}
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   401
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   402
+void
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   403
+populate_roles_table (GtkWidget *list, xmlNodePtr user_node)
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   404
+{
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   405
+	GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (list));
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   406
+	xmlNodePtr    roledb_root = get_root_node (NODE_ROLE);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   407
+	xmlNodePtr    roles, role, user;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   408
+	GtkTreeIter   iter;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   409
+	gchar        *name, *desc, *buf;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   410
+	gboolean      val;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   411
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   412
+	gtk_list_store_clear (GTK_LIST_STORE (model));
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   413
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   414
+	roles = gst_xml_element_find_first (roledb_root, "rbac_roles");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   415
+	for (role = gst_xml_element_find_first (roles, "rbac_role");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   416
+	     role != NULL;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   417
+	     role = gst_xml_element_find_next (role, "rbac_role")) {
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   418
+		name = gst_xml_get_child_content (role, "role");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   419
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   420
+		if (name) {
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   421
+                        gchar *combined_str;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   422
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   423
+			val = FALSE;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   424
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   425
+			/* check whether the user already has RBAC profile */
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   426
+                        if (user_node ) {
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   427
+                            if ( user_has_rbac_role ( user_node, name )) {
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   428
+                                val = TRUE;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   429
+                            }
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   430
+                        }
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   431
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   432
+                        combined_str = name;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   433
+			
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   434
+			gtk_list_store_append (GTK_LIST_STORE (model), &iter);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   435
+			gtk_list_store_set (GTK_LIST_STORE (model), &iter,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   436
+					    0, val,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   437
+					    1, combined_str,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   438
+					    2, name,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   439
+					    -1);
13396
8d391189a7d8 2008-09-04 Jim Li <[email protected]>
jim
parents: 13240
diff changeset
   440
+                        if ( combined_str != name ) 
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   441
+                            g_free( combined_str );
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   442
+			g_free (name);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   443
+		}
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   444
+	}
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   445
+}
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   446
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   447
+void
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   448
+roles_save_data (xmlNodePtr node )
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   449
+{
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   450
+        
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   451
+	GtkWidget    *list  = NULL;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   452
+	GtkTreeModel *model = NULL;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   453
+	GtkTreeIter   iter;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   454
+	xmlNodePtr    role_node, rbac_roles_node, rbac_role_node;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   455
+	gboolean      valid, active;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   456
+	gchar        *name;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   457
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   458
+	g_return_if_fail (node != NULL);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   459
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   460
+	list  = gst_dialog_get_widget (tool->main_dialog, "user_roles");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   461
+	model = gtk_tree_view_get_model (GTK_TREE_VIEW (list));
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   462
+	role_node = gst_xml_element_find_first (node, "role");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   463
+        
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   464
+        if ( role_node != NULL ) {
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   465
+	    rbac_roles_node = gst_xml_element_find_first (role_node, "rbac_roles");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   466
+            if (rbac_roles_node) {
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   467
+                gst_xml_element_destroy_children (rbac_roles_node);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   468
+            }
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   469
+            else {
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   470
+                rbac_roles_node = gst_xml_element_add (node, "rbac_roles");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   471
+            }
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   472
+        }
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   473
+        else {
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   474
+            role_node =  gst_xml_element_add (node, "role");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   475
+            rbac_roles_node = gst_xml_element_add (role_node, "rbac_roles");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   476
+        }
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   477
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   478
+	valid = gtk_tree_model_get_iter_first (model, &iter);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   479
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   480
+	while (valid) {
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   481
+		gtk_tree_model_get (model, &iter,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   482
+				    0, &active,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   483
+				    2, &name,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   484
+				    -1);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   485
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   486
+		if (active) {
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   487
+			rbac_role_node = gst_xml_element_add (rbac_roles_node, "rbac_role");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   488
+			gst_xml_element_set_content (rbac_role_node, name);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   489
+		}
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   490
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   491
+		g_free (name);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   492
+		valid = gtk_tree_model_iter_next (model, &iter);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   493
+	}
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   494
+}
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   495
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   496
+#endif /* __sun */
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   497
diff -urN gnome-system-tools-2.14.0.orig/src/users/roles-table.h gnome-system-tools-2.14.0/src/users/roles-table.h
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   498
--- gnome-system-tools-2.14.0.orig/src/users/roles-table.h	1970-01-01 08:00:00.000000000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   499
+++ gnome-system-tools-2.14.0/src/users/roles-table.h	2008-08-22 02:54:54.495726000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   500
@@ -0,0 +1,34 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   501
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   502
+/* roles-table.h: this file is part of users-admin, a ximian-setup-tool frontend 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   503
+ * for user administration.
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   504
+ * 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   505
+ * Copyright (C) 2004 Carlos Garnacho
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   506
+ *
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   507
+ * This program is free software; you can redistribute it and/or modify
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   508
+ * it under the terms of the GNU General Public License as
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   509
+ * published by the Free Software Foundation; either version 2 of the
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   510
+ * License, or (at your option) any later version.
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   511
+ *
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   512
+ * This program is distributed in the hope that it will be useful,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   513
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   514
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   515
+ * GNU General Public License for more details.
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   516
+ *
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   517
+ * You should have received a copy of the GNU General Public License
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   518
+ * along with this program; if not, write to the Free Software
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   519
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   520
+ *
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   521
+ * Authors: Carlos Garnacho Parro <[email protected]>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   522
+ */
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   523
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   524
+#ifndef __ROLES_TABLE_H
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   525
+#define __ROLES_TABLE_H
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   526
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   527
+void	 create_roles_table (void);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   528
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   529
+void     populate_roles_table (GtkWidget *list, xmlNodePtr user_node);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   530
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   531
+GList*   user_roles_get_list (GList*);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   532
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   533
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   534
+#endif /* __ROLES_TABLE_H */
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   535
diff -urN gnome-system-tools-2.14.0.orig/src/users/table.c gnome-system-tools-2.14.0/src/users/table.c
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   536
--- gnome-system-tools-2.14.0.orig/src/users/table.c	2008-08-20 09:37:14.219170000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   537
+++ gnome-system-tools-2.14.0/src/users/table.c	2008-08-22 04:54:52.664655000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   538
@@ -38,6 +38,7 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   539
 #include "user_group.h"
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   540
 #include "callbacks.h"
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   541
 #include "user-group-xml.h"
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   542
+#include "roles-table.h"
8601
f791014b7a8e +2006-11-17 Henry Zhang <[email protected]>
henryz
parents: 8438
diff changeset
   543
 
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   544
 extern GstTool *tool;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   545
 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   546
@@ -199,6 +200,7 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   547
 	create_profiles_table ();
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   548
 	create_user_privileges_table ();
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   549
 	create_profile_privileges_table ();
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   550
+	create_roles_table();
8601
f791014b7a8e +2006-11-17 Henry Zhang <[email protected]>
henryz
parents: 8438
diff changeset
   551
 }
f791014b7a8e +2006-11-17 Henry Zhang <[email protected]>
henryz
parents: 8438
diff changeset
   552
 
f791014b7a8e +2006-11-17 Henry Zhang <[email protected]>
henryz
parents: 8438
diff changeset
   553
 void
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   554
diff -urN gnome-system-tools-2.14.0.orig/src/users/user-group-xml.c gnome-system-tools-2.14.0/src/users/user-group-xml.c
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   555
--- gnome-system-tools-2.14.0.orig/src/users/user-group-xml.c	2008-08-20 09:37:14.220155000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   556
+++ gnome-system-tools-2.14.0/src/users/user-group-xml.c	2008-08-22 04:50:57.271572000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   557
@@ -484,7 +484,12 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   558
 	gst_xml_set_child_content (node, "passwd_min_life", data->pwd_mindays);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   559
 	gst_xml_set_child_content (node, "passwd_exp_warn", data->pwd_warndays);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   560
 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   561
+#ifndef __sun
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   562
 	user_add_extra_groups (data->extra_groups, data->login);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   563
+#else
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   564
+        user_privileges_save_data( node );
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   565
+	roles_save_data( node );
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   566
+#endif
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   567
 }
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   568
 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   569
 static void
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   570
diff -urN gnome-system-tools-2.14.0.orig/src/users/user-settings.c gnome-system-tools-2.14.0/src/users/user-settings.c
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   571
--- gnome-system-tools-2.14.0.orig/src/users/user-settings.c	2008-08-20 09:37:14.204485000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   572
+++ gnome-system-tools-2.14.0/src/users/user-settings.c	2008-08-22 04:53:25.526544000 +0800
11175
1392e642e429 2007-11-13 Jim Li <[email protected]>
jim
parents: 10720
diff changeset
   573
@@ -31,6 +31,7 @@
1392e642e429 2007-11-13 Jim Li <[email protected]>
jim
parents: 10720
diff changeset
   574
 #include <stdlib.h>
1392e642e429 2007-11-13 Jim Li <[email protected]>
jim
parents: 10720
diff changeset
   575
 #include <utmp.h>
1392e642e429 2007-11-13 Jim Li <[email protected]>
jim
parents: 10720
diff changeset
   576
 #include <ctype.h>
1392e642e429 2007-11-13 Jim Li <[email protected]>
jim
parents: 10720
diff changeset
   577
+#include <pwd.h>
1392e642e429 2007-11-13 Jim Li <[email protected]>
jim
parents: 10720
diff changeset
   578
 
1392e642e429 2007-11-13 Jim Li <[email protected]>
jim
parents: 10720
diff changeset
   579
 #include <glib/gi18n.h>
1392e642e429 2007-11-13 Jim Li <[email protected]>
jim
parents: 10720
diff changeset
   580
 
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   581
@@ -154,8 +155,21 @@
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   582
 	g_free (buf);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   583
 */
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   584
 
8659
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   585
+#if ! (defined(sun) && defined(__SVR4) )
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   586
 	populate_privileges_table_from_profile (gst_dialog_get_widget (tool->main_dialog, "user_privileges"),
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   587
 						profile);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   588
+#else
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   589
+        populate_privileges_table(gst_dialog_get_widget (tool->main_dialog, "user_privileges"),
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   590
+						profile);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   591
+#endif
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   592
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   593
+#if ! (defined(sun) && defined(__SVR4) )
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   594
+        populate_roles_table(gst_dialog_get_widget (tool->main_dialog, "user_roles"),
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   595
+                                                profile);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   596
+#else
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   597
+        populate_roles_table(gst_dialog_get_widget (tool->main_dialog, "user_roles"),
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   598
+                                                profile);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   599
+#endif
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   600
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   601
 	value = gst_xml_get_child_content (profile, "group");
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   602
 	element = g_list_first (groups_list);
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   603
@@ -185,6 +199,8 @@
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   604
 	GtkWidget *button;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   605
 	gchar *buf;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   606
 	GtkWidget *widget = gst_dialog_get_widget (tool->main_dialog, "user_settings_dialog");
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   607
+	GList *element;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   608
+	gint counter = 0;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   609
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   610
 	gtk_window_set_title (GTK_WINDOW (widget), _("User Account Editor"));
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   611
 	g_object_set_data (G_OBJECT (widget), "data", ud);
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   612
@@ -195,6 +211,16 @@
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   613
 	combo_add_groups   (gst_dialog_get_widget (tool->main_dialog, "user_settings_group"), TRUE);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   614
 	combo_add_shells   (gst_dialog_get_widget (tool->main_dialog, "user_settings_shell"));
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   615
 	combo_add_profiles (gst_dialog_get_widget (tool->main_dialog, "user_settings_profile_menu"));
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   616
+	
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   617
+		element = g_list_first (groups_list);
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   618
+
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   619
+		while ((element != NULL) && (strcmp (element->data, "other") != 0))	{
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   620
+			element = element->next;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   621
+			counter++;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   622
+		}
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   623
+		if (element == NULL) /* here group_list should have some entries in, so element is Null only because not find "other" */
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   624
+			counter == 0;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   625
+		gtk_combo_box_set_active (GTK_COMBO_BOX (gst_dialog_get_widget (tool->main_dialog, "user_settings_group")), counter);
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   626
 
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   627
 #ifdef HAVE_LIBCRACK
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   628
 	/* If we have libcrack, password quality check is enabled */
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   629
@@ -271,6 +297,30 @@
11816
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   630
 }
11175
1392e642e429 2007-11-13 Jim Li <[email protected]>
jim
parents: 10720
diff changeset
   631
 
11816
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   632
 static gboolean
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   633
+is_new_login_valid (const gchar *login)
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   634
+{
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   635
+        gchar *primary_text   = NULL;
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   636
+        gchar *secondary_text = NULL;
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   637
+        struct utmp ut;
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   638
+
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   639
+        g_return_val_if_fail (login != NULL, FALSE);
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   640
+
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   641
+        if ( getpwnam (login) != NULL) {
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   642
+       		/* SUN_BRANDING */
11816
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   643
+       		primary_text   = g_strdup_printf (_("User name new\"%s\" already exists"), login);
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   644
+       		/* SUN_BRANDING */
11816
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   645
+       		secondary_text = g_strdup (_("Please select a different user name."));
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   646
+            	show_error_message ("user_settings_dialog", primary_text, secondary_text);
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   647
+                g_free (primary_text);
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   648
+                g_free (secondary_text);
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   649
+
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   650
+		return FALSE;
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   651
+	} else {
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   652
+            	return TRUE;
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   653
+	}
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   654
+}
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   655
+
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   656
+static gboolean
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   657
 is_login_valid (xmlNodePtr node, const gchar *login)
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   658
 {
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   659
 	gchar *primary_text   = NULL;
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   660
@@ -393,7 +443,14 @@
8659
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   661
 	gchar *primary_text   = NULL;
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   662
 	gchar *secondary_text = NULL;
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   663
 	struct stat s;
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   664
-	
8659
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   665
+#if defined(sun) && defined(__SVR4)
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   666
+	struct stat base_s;
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   667
+        gchar *basedir = NULL;
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   668
+	
8659
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   669
+        if ( home != NULL ) {
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   670
+            basedir = g_path_get_dirname( home );
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   671
+        }
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   672
+#endif /* sun & __SVR4 */
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   673
 	if (!home || (strlen (home) < 1)) {
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   674
 		primary_text   = g_strdup (N_("Home directory should not be empty"));
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   675
 		secondary_text = g_strdup (N_("Make sure you provide a home directory."));
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   676
@@ -405,7 +462,20 @@
8659
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   677
 		primary_text   = g_strdup (N_("Home directory of the \"root\" user should not be modified"));
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   678
 		secondary_text = g_strdup (N_("This would leave the system unusable."));
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   679
 	}
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   680
-
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   681
+#if defined(sun) && defined(__SVR4)
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   682
+        else if ( home != NULL && basedir != NULL 
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   683
+                  && g_strncasecmp(basedir,".", 1 ) != 0  /* Do we actually have a basedir? */
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   684
+                  && stat( home, &s ) == -1               /* If the home dir already exists skip */     
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   685
+                  && stat( basedir, &base_s ) == 0 ) {    /* Now try stat the basedir */
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   686
+                /* Check whether homedir is auto mounted */
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   687
+                if ( g_strncasecmp(base_s.st_fstype, "autofs", strlen("autofs") ) == 0 )  {
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   688
+       		/* SUN_BRANDING */
8659
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   689
+		        primary_text   = g_strdup (N_("Cannot create a home directory on an automounted filesystem."));
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   690
+       		/* SUN_BRANDING */
8659
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   691
+		        secondary_text = g_strdup (N_("Please pick an alternative base directory for the users home directory."));
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   692
+                }
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   693
+        }
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   694
+#endif /* sun & __SVR4 */
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   695
 /*	else if (stat (home, &s))
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   696
 	{
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   697
 		switch (errno) {
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   698
@@ -416,6 +486,11 @@
8659
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   699
 		}
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   700
 	}
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   701
 */
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   702
+#if defined(sun) && defined(__SVR4)
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   703
+        if ( basedir != NULL ) {
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   704
+                g_free( basedir );
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   705
+        }
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   706
+#endif /* sun & __SVR4 */
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   707
 	if (primary_text) {
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   708
 		show_error_message ("user_settings_dialog", _(primary_text), _(secondary_text));
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   709
 		g_free (primary_text);
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   710
@@ -428,6 +453,28 @@
11816
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   711
 }
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   712
 
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   713
 static gboolean
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   714
+is_new_user_uid_valid (const gchar *uid)
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   715
+{
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   716
+        gchar *primary_text   = NULL;
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   717
+        gchar *secondary_text = NULL;
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   718
+
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   719
+        if ( getpwuid ( g_strtod (uid, NULL) ) != NULL ) {
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   720
+                /* SUN_BRANDING */
11175
1392e642e429 2007-11-13 Jim Li <[email protected]>
jim
parents: 10720
diff changeset
   721
+                primary_text   = g_strdup_printf (_("User ID \"%s\" already exists"), uid);
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   722
+                /* SUN_BRANDING */
11175
1392e642e429 2007-11-13 Jim Li <[email protected]>
jim
parents: 10720
diff changeset
   723
+                secondary_text = g_strdup (_("Please select a different User ID."));
11816
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   724
+       		
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   725
+		show_error_message ("user_settings_dialog", _(primary_text), _(secondary_text));
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   726
+       		g_free (primary_text);
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   727
+       		g_free (secondary_text);
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   728
+
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   729
+       		return FALSE;
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   730
+	} else {
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   731
+		return TRUE;
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   732
+	}
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   733
+}
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   734
+	
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   735
+static gboolean
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   736
 is_user_uid_valid (xmlNodePtr node, const gchar *uid)
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   737
 {
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   738
 	gchar *primary_text   = NULL;
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   739
@@ -548,7 +645,11 @@
11816
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   740
 	if (!is_login_valid (ud->node, data->login)) {
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   741
 		return FALSE;
11175
1392e642e429 2007-11-13 Jim Li <[email protected]>
jim
parents: 10720
diff changeset
   742
 	}
11816
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   743
-	
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   744
+
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   745
+	/* check new user login  */
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   746
+	if ( ud->is_new && !is_new_login_valid (data->login)) {
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   747
+		return FALSE;
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   748
+	} 
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   749
 	/* check user comments */
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   750
 	data->name = (gchar *) gtk_entry_get_text (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "user_settings_comment")));
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   751
 	data->location = (gchar *) gtk_entry_get_text (GTK_ENTRY (gst_dialog_get_widget (tool->main_dialog, "user_settings_office")));
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   752
@@ -574,12 +675,17 @@
11816
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   753
 	if (!is_home_valid (ud->node, data->home)) {
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   754
 		return FALSE;
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   755
 	}
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   756
-	
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   757
+
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   758
 	/* check user uid */
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   759
 	data->uid = g_strdup_printf ("%i", gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (gst_dialog_get_widget (tool->main_dialog, "user_settings_uid"))));
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   760
 	if (!is_user_uid_valid (ud->node, data->uid)) {
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   761
 		return FALSE;
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   762
 	}
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   763
+        /* check new user uid */
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   764
+        if ( ud->is_new && !is_new_user_uid_valid (data->uid)) {
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   765
+                return FALSE;
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   766
+        }
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   767
+
11175
1392e642e429 2007-11-13 Jim Li <[email protected]>
jim
parents: 10720
diff changeset
   768
 	
11816
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   769
 	/* check user shell */
e598cf3eccc2 2008-03-07 Jim Li <[email protected]>
jim
parents: 11175
diff changeset
   770
 	data->shell = (gchar *) gtk_entry_get_text (GTK_ENTRY (GTK_BIN (gst_dialog_get_widget (tool->main_dialog, "user_settings_shell"))->child));
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   771
@@ -618,6 +724,9 @@
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   772
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   773
 	/* get user main group GID*/
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   774
 	data->group = g_list_nth_data (groups_list, gtk_combo_box_get_active (GTK_COMBO_BOX (gst_dialog_get_widget (tool->main_dialog, "user_settings_group"))));
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   775
+	if (!data->group)
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   776
+		return FALSE;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   777
+
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   778
 	if (strcmp (data->group, "$user") == 0)
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   779
 		data->group = data->login;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   780
 	
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   781
@@ -627,7 +736,9 @@
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   782
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   783
 	data->extra_groups = NULL;
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   784
 	data->extra_groups = user_get_groups (ud->node);
8659
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   785
+#if ! (defined(sun) && defined(__SVR4) )
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   786
 	data->extra_groups = user_privileges_get_list (data->extra_groups);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   787
+#endif
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   788
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   789
 	data->pwd_maxdays = g_strdup_printf ("%i", gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (gst_dialog_get_widget (tool->main_dialog, "user_passwd_max"))));
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   790
 	data->pwd_mindays = g_strdup_printf ("%i", gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (gst_dialog_get_widget (tool->main_dialog, "user_passwd_min"))));
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   791
@@ -718,6 +829,7 @@
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   792
 	/* Set UID */
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   793
 	txt = gst_xml_get_child_content (ud->node, "uid");
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   794
 	w0 = gst_dialog_get_widget (tool->main_dialog, "user_settings_uid");
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   795
+	gtk_spin_button_set_range (GTK_SPIN_BUTTON (w0), 0, IDMAX);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   796
 	gtk_spin_button_set_value (GTK_SPIN_BUTTON (w0), g_strtod (txt, NULL));
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   797
 	g_free (txt);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   798
 	
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
   799
@@ -750,7 +862,19 @@
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   800
 	}
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   801
 
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   802
 	w0 = gst_dialog_get_widget (tool->main_dialog, "user_privileges");
8659
a8584540987d 2006-11-29 Darren Kenny <[email protected]>
dkenny
parents: 8612
diff changeset
   803
+#if ! (defined(sun) && defined(__SVR4) )
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   804
 	populate_privileges_table (w0, name);
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   805
+#else
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   806
+	populate_privileges_table (w0, ud->node );
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   807
+#endif
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   808
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   809
+        w0 = gst_dialog_get_widget (tool->main_dialog, "user_roles");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   810
+#if ! (defined(sun) && defined(__SVR4) )
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   811
+        populate_roles_table (w0, name);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   812
+#else
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   813
+        populate_roles_table (w0, ud->node );
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   814
+#endif
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   815
+
8612
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   816
 	
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   817
 	/* Set password */
b455d5fe1658 +2006-11-20 Henry Zhang <[email protected]>
henryz
parents: 8601
diff changeset
   818
 	user_settings_dialog_prepare_password ();
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   819
diff -urN gnome-system-tools-2.14.0.orig/src/users/user_group.c gnome-system-tools-2.14.0/src/users/user_group.c
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   820
--- gnome-system-tools-2.14.0.orig/src/users/user_group.c	2008-08-20 09:37:14.208213000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   821
+++ gnome-system-tools-2.14.0/src/users/user_group.c	2008-08-22 04:52:18.525007000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   822
@@ -161,11 +161,12 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   823
 	groups_list = g_list_sort (groups_list, my_strcmp);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   824
 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   825
 	element = g_list_first (groups_list);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   826
-
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   827
+	
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   828
 	while (element) {
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   829
 		gtk_combo_box_append_text (GTK_COMBO_BOX (combo), element->data);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   830
 		element = g_list_next (element);
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   831
 	}
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   832
+	
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   833
 }
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   834
 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   835
 void
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   836
@@ -209,6 +210,12 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   837
 	case NODE_PROFILE:
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   838
 		node = gst_xml_element_find_first (root, "profiledb");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   839
 		break;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   840
+	case NODE_RBAC:
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   841
+		node = gst_xml_element_find_first (root, "rbacdb");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   842
+		break;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   843
+        case NODE_ROLE:
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   844
+                node = gst_xml_element_find_first (root, "roledb");
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   845
+                break;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   846
 	default:
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   847
 		node = NULL;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   848
 		break;
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   849
diff -urN gnome-system-tools-2.14.0.orig/src/users/user_group.h gnome-system-tools-2.14.0/src/users/user_group.h
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   850
--- gnome-system-tools-2.14.0.orig/src/users/user_group.h	2008-08-20 09:37:14.208678000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   851
+++ gnome-system-tools-2.14.0/src/users/user_group.h	2008-08-22 04:48:42.513878000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   852
@@ -29,7 +29,12 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   853
 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   854
 #include "gst.h"
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   855
 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   856
+#ifdef __sun
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   857
+#include <sys/param.h>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   858
+#define IDMAX MAXUID
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   859
+#else
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   860
 #define IDMAX 100000
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   861
+#endif
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   862
 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   863
 enum {
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   864
 	NODE_USER,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   865
@@ -37,7 +42,9 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   866
 	NODE_DEFAULT,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   867
 	NODE_NET_GROUP,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   868
 	NODE_NET_USER,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   869
-	NODE_PROFILE
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   870
+	NODE_PROFILE,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   871
+        NODE_RBAC,
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   872
+	NODE_ROLE
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   873
 };
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   874
 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   875
 typedef struct {
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   876
--- gnome-system-tools-2.14.0.orig/interfaces/users.glade.in	2008-08-20 09:37:14.698348000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   877
+++ gnome-system-tools-2.14.0/interfaces/users.glade.in	2008-08-22 03:48:20.676006000 +0800
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   878
@@ -888,7 +888,7 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   879
 		  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   880
 		  <property name="snap_to_ticks">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   881
 		  <property name="wrap">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   882
-		  <property name="adjustment">0 0 99999 1 10 10</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   883
+		  <property name="adjustment">0 0 2147483647 1 10 10</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   884
 		</widget>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   885
 		<packing>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   886
 		  <property name="left_attach">2</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   887
@@ -1447,7 +1447,7 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   888
 
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   889
 	      <child>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   890
 		<widget class="GtkTable" id="table48">
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   891
-		  <property name="visible">True</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   892
+		  <property name="visible">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   893
 		  <property name="n_rows">5</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   894
 		  <property name="n_columns">3</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   895
 		  <property name="homogeneous">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   896
@@ -2542,7 +2542,7 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   897
 		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   898
 		      <property name="snap_to_ticks">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   899
 		      <property name="wrap">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   900
-		      <property name="adjustment">0 0 99999 1 10 10</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   901
+		      <property name="adjustment">0 0 2147483647 1 10 10</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   902
 		    </widget>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   903
 		    <packing>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   904
 		      <property name="left_attach">2</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   905
@@ -2917,7 +2917,98 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   906
 	  <child>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   907
 	    <widget class="GtkLabel" id="label312">
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   908
 	      <property name="visible">True</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   909
-	      <property name="label" translatable="yes">User privileges</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   910
+	      <property name="label" translatable="yes">User profiles</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   911
+	      <property name="use_underline">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   912
+	      <property name="use_markup">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   913
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   914
+	      <property name="wrap">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   915
+	      <property name="selectable">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   916
+	      <property name="xalign">0.5</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   917
+	      <property name="yalign">0.5</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   918
+	      <property name="xpad">0</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   919
+	      <property name="ypad">0</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   920
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   921
+	      <property name="width_chars">-1</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   922
+	      <property name="single_line_mode">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   923
+	      <property name="angle">0</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   924
+	    </widget>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   925
+	    <packing>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   926
+	      <property name="type">tab</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   927
+	    </packing>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   928
+	  </child>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   929
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   930
+	  <child>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   931
+	    <widget class="GtkVBox" id="vbox489">
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   932
+	      <property name="border_width">12</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   933
+	      <property name="visible">True</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   934
+	      <property name="homogeneous">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   935
+	      <property name="spacing">6</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   936
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   937
+	      <child>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   938
+		<widget class="GtkLabel" id="label316">
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   939
+		  <property name="visible">True</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   940
+		  <property name="label" translatable="yes">Allow user to:</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   941
+		  <property name="use_underline">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   942
+		  <property name="use_markup">True</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   943
+		  <property name="justify">GTK_JUSTIFY_LEFT</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   944
+		  <property name="wrap">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   945
+		  <property name="selectable">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   946
+		  <property name="xalign">0</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   947
+		  <property name="yalign">0.5</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   948
+		  <property name="xpad">0</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   949
+		  <property name="ypad">0</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   950
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   951
+		  <property name="width_chars">-1</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   952
+		  <property name="single_line_mode">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   953
+		  <property name="angle">0</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   954
+		</widget>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   955
+		<packing>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   956
+		  <property name="padding">0</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   957
+		  <property name="expand">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   958
+		  <property name="fill">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   959
+		</packing>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   960
+	      </child>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   961
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   962
+	      <child>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   963
+		<widget class="GtkScrolledWindow" id="scrolledwindow3">
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   964
+		  <property name="visible">True</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   965
+		  <property name="can_focus">True</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   966
+		  <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   967
+		  <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   968
+		  <property name="shadow_type">GTK_SHADOW_IN</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   969
+		  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   970
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   971
+		  <child>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   972
+		    <widget class="GtkTreeView" id="user_roles">
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   973
+		      <property name="visible">True</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   974
+		      <property name="can_focus">True</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   975
+		      <property name="headers_visible">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   976
+		      <property name="rules_hint">True</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   977
+		      <property name="reorderable">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   978
+		      <property name="enable_search">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   979
+		      <property name="fixed_height_mode">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   980
+		      <property name="hover_selection">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   981
+		      <property name="hover_expand">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   982
+		    </widget>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   983
+		  </child>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   984
+		</widget>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   985
+		<packing>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   986
+		  <property name="padding">0</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   987
+		  <property name="expand">True</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   988
+		  <property name="fill">True</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   989
+		</packing>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   990
+	      </child>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   991
+	    </widget>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   992
+	    <packing>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   993
+	      <property name="tab_expand">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   994
+	      <property name="tab_fill">True</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   995
+	    </packing>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   996
+	  </child>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   997
+
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   998
+	  <child>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
   999
+	    <widget class="GtkLabel" id="label313">
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1000
+	      <property name="visible">True</property>
14401
b95c41e67d3f 2008-09-30 Takao Fujiwara <[email protected]>
fujiwara
parents: 13396
diff changeset
  1001
+	      <property name="label" translatable="yes" comments="SUN_BRANDING">User roles</property>
13240
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1002
 	      <property name="use_underline">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1003
 	      <property name="use_markup">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1004
 	      <property name="justify">GTK_JUSTIFY_LEFT</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1005
@@ -3778,7 +3869,7 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1006
 		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1007
 		      <property name="snap_to_ticks">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1008
 		      <property name="wrap">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1009
-		      <property name="adjustment">0 0 99999 1 10 10</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1010
+		      <property name="adjustment">0 0 2147483647 1 10 10</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1011
 		    </widget>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1012
 		    <packing>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1013
 		      <property name="left_attach">2</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1014
@@ -3800,7 +3891,7 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1015
 		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1016
 		      <property name="snap_to_ticks">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1017
 		      <property name="wrap">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1018
-		      <property name="adjustment">0 0 99999 1 10 10</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1019
+		      <property name="adjustment">0 0 2147483647 1 10 10</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1020
 		    </widget>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1021
 		    <packing>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1022
 		      <property name="left_attach">2</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1023
@@ -3822,7 +3913,7 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1024
 		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1025
 		      <property name="snap_to_ticks">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1026
 		      <property name="wrap">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1027
-		      <property name="adjustment">0 0 99999 1 10 10</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1028
+		      <property name="adjustment">0 0 2147483647 1 10 10</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1029
 		    </widget>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1030
 		    <packing>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1031
 		      <property name="left_attach">4</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1032
@@ -3844,7 +3935,7 @@
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1033
 		      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1034
 		      <property name="snap_to_ticks">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1035
 		      <property name="wrap">False</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1036
-		      <property name="adjustment">0 0 99999 1 10 10</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1037
+		      <property name="adjustment">0 0 2147483647 1 10 10</property>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1038
 		    </widget>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1039
 		    <packing>
86b4073e507e 2008-08-22 Jim Li <[email protected]>
jim
parents: 11816
diff changeset
  1040
 		      <property name="left_attach">4</property>