Bug#985138: cinnamon: User dialog holds if user tries to create a user that already exists
Package: cinnamon
Version: 4.6.7-1ubuntu1.1
Severity: normal
Tags: patch
X-Debbugs-Cc: itzswirlz2020@outlook.com
Dear Maintainer,
* As seen in all versions of Cinnamon so far, if the user tries to create a
user that already exists, a GLib.Error is thrown saying that the user already
exists, and the user creation dialog will hold.
* The patch was already made upstream. Two commits actually; one to fix the
bug and one for fixing the string for localization.
* The patch is attached below.
-Josh
-- System Information:
Debian Release: bullseye/sid
APT prefers groovy-updates
APT policy: (500, 'groovy-updates'), (500, 'groovy-security'), (500, 'groovy'), (100, 'groovy-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 5.8.0-44-generic (SMP w/4 CPU threads)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages cinnamon depends on:
ii cinnamon-common 4.6.7-1ubuntu1.1
ii cinnamon-control-center 4.6.2-2
ii cinnamon-desktop-data 4.6.4-1
ii cinnamon-screensaver 4.6.0-2ubuntu0.1
ii cinnamon-session 4.6.2-1
ii cinnamon-settings-daemon 4.6.4-1
ii cjs 4.6.0-2ubuntu1
ii cups-pk-helper 0.2.6-1ubuntu3
ii dconf-gsettings-backend [gsettings-backend] 0.38.0-1
ii gir1.2-accountsservice-1.0 0.6.55-0ubuntu13.2
ii gir1.2-caribou-1.0 0.4.21-7
ii gir1.2-clutter-1.0 1.26.4+dfsg-1
ii gir1.2-cmenu-3.0 4.6.1-1
ii gir1.2-cogl-1.0 1.22.8-1
ii gir1.2-cvc-1.0 4.6.4-1
ii gir1.2-gdkpixbuf-2.0 2.40.0+dfsg-5ubuntu0.2
ii gir1.2-gkbd-3.0 3.26.1-1
ii gir1.2-glib-2.0 1.66.1-1
ii gir1.2-gnomedesktop-3.0 3.38.3-0ubuntu1
ii gir1.2-gtk-3.0 3.24.23-1ubuntu1
ii gir1.2-gtkclutter-1.0 1.8.4-4
ii gir1.2-keybinder-3.0 0.3.2-1ubuntu1
ii gir1.2-meta-muffin-0.0 4.6.3-1
ii gir1.2-nemo-3.0 4.6.5-1
ii gir1.2-nm-1.0 1.26.2-1ubuntu1
ii gir1.2-nma-1.0 1.8.30-1
ii gir1.2-notify-0.7 0.7.9-1ubuntu2
ii gir1.2-pango-1.0 1.46.2-1
ii gir1.2-polkit-1.0 0.105-29
ii gir1.2-soup-2.4 2.72.0-2
ii gir1.2-timezonemap-1.0 0.4.6-2
ii gir1.2-upowerglib-1.0 0.99.11-2
ii gir1.2-xapp-1.0 1.8.9-1
ii gkbd-capplet 3.26.1-1
ii gnome-backgrounds 3.38.0-1
ii gnome-themes-extra 3.28-1ubuntu1
ii gnome-themes-standard 3.28-1ubuntu1
ii gsettings-desktop-schemas 3.38.0-1ubuntu1
ii iso-flags-png-320x240 1.0.2-1
ii libatk-bridge2.0-0 2.38.0-1
ii libatk1.0-0 2.36.0-0ubuntu1
ii libc6 2.32-0ubuntu3
ii libcairo2 1.16.0-4ubuntu1
ii libcinnamon-desktop4 4.6.4-1
ii libcinnamon-menu-3-0 4.6.1-1
ii libcjs0 4.6.0-2ubuntu1
ii libcroco3 0.6.13-1
ii libgdk-pixbuf2.0-0 2.40.0+dfsg-5ubuntu0.2
ii libgirepository-1.0-1 1.66.1-1
ii libgl1 1.3.2-1
ii libglib2.0-0 2.66.1-2ubuntu0.1
ii libglib2.0-bin 2.66.1-2ubuntu0.1
ii libgstreamer1.0-0 1.18.0-3
ii libgtk-3-0 3.24.23-1ubuntu1
ii libmuffin0 4.6.3-1
ii libpango-1.0-0 1.46.2-1
ii libpangocairo-1.0-0 1.46.2-1
ii libstartup-notification0 0.12-6
ii libx11-6 2:1.6.12-1
ii libxfixes3 1:5.0.3-2
ii libxml2 2.9.10+dfsg-5build1
ii mesa-utils 8.4.0-1build1
ii muffin 4.6.3-1
ii nemo 4.6.5-1
ii network-manager-gnome 1.18.0-1ubuntu2
ii policykit-1-gnome 0.105-7ubuntu2
ii python3 3.8.6-0ubuntu1
ii python3-dbus 1.2.16-3
ii python3-distro 1.5.0-1
ii python3-gi 3.38.0-1
ii python3-gi-cairo 3.38.0-1
ii python3-pampy 1.8.4-2
ii python3-pexpect 4.6.0-4
ii python3-pil 7.2.0-1ubuntu0.2
ii python3-pyinotify 0.9.6-1.2ubuntu1
ii python3-setproctitle 1.2.1-1
ii python3-tinycss2 1.0.2-1
ii python3-tz 2020.1-2
ii xapps-common 1.8.9-1
Versions of packages cinnamon recommends:
pn blueman <none>
ii cinnamon-l10n 4.6.2-1
ii gnome-terminal [x-terminal-emulator] 3.38.0-1ubuntu1.1
ii libcanberra-pulse 0.30-7ubuntu2
ii lxterminal [x-terminal-emulator] 0.3.2-1
ii metacity-common 1:3.38.0-1
ii tilix [x-terminal-emulator] 1.9.3-4build4
ii xterm [x-terminal-emulator] 353-1ubuntu1.20.10.2
Versions of packages cinnamon suggests:
pn cinnamon-doc <none>
ii python3-opencv 4.2.0+dfsg-6build6
-- no debconf information
Without this, a GLib.Error would result and the dialog would hold if the
user created an already existing user.
Commit: https://github.com/linuxmint/cinnamon/commit/f1b565a723daa7ab9e36219d8e48581226b33acb
Fix for localization commit: https://github.com/linuxmint/cinnamon/commit/5a72d6061e42bdf934afc9d6444751e316f8e5fa
Index: cinnamon/files/usr/share/cinnamon/cinnamon-settings-users/cinnamon-settings-users.py
===================================================================
--- a/files/usr/share/cinnamon/cinnamon-settings-users/cinnamon-settings-users.py
+++ b/files/usr/share/cinnamon/cinnamon-settings-users/cinnamon-settings-users.py
@@ -392,6 +392,15 @@ def __init__ (self, parent = None):
except Exception as detail:
print(detail)
+ def user_exists(self, user_name):
+ users = AccountsService.UserManager.get_default().list_users()
+
+ for user in users:
+ if user.get_user_name() == user_name:
+ return True
+
+ return False
+
def _on_info_changed(self, widget):
fullname = self.realname_entry.get_text()
username = self.username_entry.get_text()
@@ -400,6 +409,10 @@ def _on_info_changed(self, widget):
self.username_entry.set_icon_from_icon_name(Gtk.EntryIconPosition.SECONDARY, "dialog-warning-symbolic")
self.username_entry.set_icon_tooltip_text(Gtk.EntryIconPosition.SECONDARY, _("Invalid username"))
valid = False
+ elif self.user_exists(username):
+ self.username_entry.set_icon_from_icon_name(Gtk.EntryIconPosition.SECONDARY, "dialog-warning-symbolic")
+ self.username_entry.set_icon_tooltip_text(Gtk.EntryIconPosition.SECONDARY, _("A user with the name '%s' already exists.") % username)
+ valid = False
else:
self.username_entry.set_icon_from_icon_name(Gtk.EntryIconPosition.SECONDARY, None)
if username == "" or fullname == "":
Reply to: