Hi,

This bug is a lot simpler to fix than what my first attempts
were trying to do. The fix is attached.

By way of explanation, as it's not completely obvious I
include the main part here.

+--- gnome-system-tools-2.22.0~/src/users/user-settings.c       2008-03-31 
16:32:35.000000000 +0100
++++ gnome-system-tools-2.22.0/src/users/user-settings.c        2008-03-31 
16:32:36.000000000 +0100
+@@ -347,9 +347,6 @@
+               widget = gst_dialog_get_widget (tool->main_dialog, 
"user_settings_shell");
+               set_entry_text (GTK_BIN (widget)->child, oobs_user_get_shell 
(user));
+ 
+-              widget = gst_dialog_get_widget (tool->main_dialog, 
"user_settings_home");
+-              set_entry_text (widget, oobs_user_get_home_directory (user));
+-
+               widget = gst_dialog_get_widget (tool->main_dialog, 
"user_settings_uid");
+               gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), 
oobs_user_get_uid (user));
+               gtk_widget_set_sensitive (GTK_SPIN_BUTTON (widget), FALSE);


Here's where the code used to set the home dir for existing users.

+@@ -394,6 +391,11 @@
+       if (!login)
+               table_set_default_profile (GST_USERS_TOOL (tool));
+ 

However this eventually sets the default home dir prefix
for the user's profile, and then calls the callback to
update that based on  the user's name. This then overwrote
the value we set above.

It is exactly the right thing to do if the user didn't exist
on the system yet, i.e. user == NULL.

++      if (user) {
++              widget = gst_dialog_get_widget (tool->main_dialog, 
"user_settings_home");
++              set_entry_text (widget, oobs_user_get_home_directory (user));
++      }

So, we just add this right after, which is taking the code above and
moving it below this, with the same guard. This means that
we still set the user's home directory if they already exist, we just do
it later so that it is not overwritten.

I have tested this and found

  * It shows both mine and the root account's home
     dir correctly, where only mine was shown before.

  * It uses the default prefix from the user's profile
     when creating a user, and updates the homedir
     as you type in the username, which is the same
     behaviour as before.

Thanks,

James


** Attachment added: "g-s-t.diff"
   http://launchpadlibrarian.net/12995276/g-s-t.diff

-- 
[users-admin] Changing anything about the root account sets and invalid home 
directory
https://bugs.launchpad.net/bugs/198172
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to