From bab315c00ebcfed9c50094e7fd733505712bcf5f Mon Sep 17 00:00:00 2001 From: G3rb <93rb1n4t0r@gmail.com> Date: Tue, 17 Apr 2018 14:29:04 +0200 Subject: [PATCH] key "org.cinnamon.desktop.lockdown" consideration related to this feature request. #6136 I change the code for this applet just to remove the "switch user" option when the gsettings key "org.cinnamon.desktop.lockdown" "disable-user-switching" is true. I need it in Linux Mint 18.3 so I change it in this version. --- .../applets/user@cinnamon.org/applet.js | 58 ++++++++++--------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/files/usr/share/cinnamon/applets/user@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/user@cinnamon.org/applet.js index 24a74bd393..ce923c35a0 100644 --- a/files/usr/share/cinnamon/applets/user@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/user@cinnamon.org/applet.js @@ -9,6 +9,9 @@ const AccountsService = imports.gi.AccountsService; const GnomeSession = imports.misc.gnomeSession; const ScreenSaver = imports.misc.screenSaver; const Settings = imports.ui.settings; +const SETTINGS_SCHEMA = 'org.cinnamon.desktop.lockdown'; +const GSETTINGS1_KEY = 'disable-user-switching'; +let settingsSchema, isSwitchUserDisabled; function MyApplet(orientation, panel_height, instance_id) { @@ -89,32 +92,35 @@ MyApplet.prototype = { } })); this.menu.addMenuItem(item); - - if (GLib.getenv("XDG_SEAT_PATH")) { - // LightDM - item = new PopupMenu.PopupIconMenuItem(_("Switch User"), "switch-user", St.IconType.SYMBOLIC); - item.connect('activate', Lang.bind(this, function() { - Util.spawnCommandLine("cinnamon-screensaver-command --lock"); - Util.spawnCommandLine("dm-tool switch-to-greeter"); - })); - this.menu.addMenuItem(item); - } - else if (GLib.file_test("/usr/bin/mdmflexiserver", GLib.FileTest.EXISTS)) { - // MDM - item = new PopupMenu.PopupIconMenuItem(_("Switch User"), "switch-user", St.IconType.SYMBOLIC); - item.connect('activate', Lang.bind(this, function() { - Util.spawnCommandLine("mdmflexiserver"); - })); - this.menu.addMenuItem(item); - } - else if (GLib.file_test("/usr/bin/gdmflexiserver", GLib.FileTest.EXISTS)) { - // GDM - item = new PopupMenu.PopupIconMenuItem(_("Switch User"), "switch-user", St.IconType.SYMBOLIC); - item.connect('activate', Lang.bind(this, function() { - Util.spawnCommandLine("cinnamon-screensaver-command --lock"); - Util.spawnCommandLine("gdmflexiserver"); - })); - this.menu.addMenuItem(item); + settingsSchema = new Gio.Settings({ schema: SETTINGS_SCHEMA }); + isSwitchUserDisabled = settingsSchema.get_boolean(GSETTINGS1_KEY); + if (!isSwitchUserDisabled){ + if (GLib.getenv("XDG_SEAT_PATH")) { + // LightDM + item = new PopupMenu.PopupIconMenuItem(_("Switch User"), "switch-user", St.IconType.SYMBOLIC); + item.connect('activate', Lang.bind(this, function() { + Util.spawnCommandLine("cinnamon-screensaver-command --lock"); + Util.spawnCommandLine("dm-tool switch-to-greeter"); + })); + this.menu.addMenuItem(item); + } + else if (GLib.file_test("/usr/bin/mdmflexiserver", GLib.FileTest.EXISTS)) { + // MDM + item = new PopupMenu.PopupIconMenuItem(_("Switch User"), "switch-user", St.IconType.SYMBOLIC); + item.connect('activate', Lang.bind(this, function() { + Util.spawnCommandLine("mdmflexiserver"); + })); + this.menu.addMenuItem(item); + } + else if (GLib.file_test("/usr/bin/gdmflexiserver", GLib.FileTest.EXISTS)) { + // GDM + item = new PopupMenu.PopupIconMenuItem(_("Switch User"), "switch-user", St.IconType.SYMBOLIC); + item.connect('activate', Lang.bind(this, function() { + Util.spawnCommandLine("cinnamon-screensaver-command --lock"); + Util.spawnCommandLine("gdmflexiserver"); + })); + this.menu.addMenuItem(item); + } } item = new PopupMenu.PopupIconMenuItem(_("Log Out..."), "logout", St.IconType.SYMBOLIC);