[gnome-shell/wip/lockdown-show-password: 515/515] shellEntry: Support lockdown of "Show Text" menu in password entries
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/lockdown-show-password: 515/515] shellEntry: Support lockdown of "Show Text" menu in password entries
- Date: Sat, 21 Dec 2019 03:15:27 +0000 (UTC)
commit 0a935b13b845c1827f1dbdf13d302cecef9c2286
Author: Ray Strode <rstrode redhat com>
Date: Wed Aug 21 15:06:46 2019 -0400
shellEntry: Support lockdown of "Show Text" menu in password entries
Some deployments require being able to prevent users from showing
the password they're currently typing.
This commit adds support for that kind of lockdown.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/687
js/ui/shellEntry.js | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
---
diff --git a/js/ui/shellEntry.js b/js/ui/shellEntry.js
index 884efc6b5f..d8eba95e03 100644
--- a/js/ui/shellEntry.js
+++ b/js/ui/shellEntry.js
@@ -1,17 +1,24 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported addContextMenu CapsLockWarning */
-const { Clutter, GObject, Pango, Shell, St } = imports.gi;
+const { Clutter, Gio, GObject, Pango, Shell, St } = imports.gi;
const BoxPointer = imports.ui.boxpointer;
const Main = imports.ui.main;
const Params = imports.misc.params;
const PopupMenu = imports.ui.popupMenu;
+const LOCKDOWN_SCHEMA = 'org.gnome.desktop.lockdown';
+const DISABLE_SHOW_PASSWORD_KEY = 'disable-show-password';
+
var EntryMenu = class extends PopupMenu.PopupMenu {
constructor(entry) {
super(entry, 0, St.Side.TOP);
+ this._lockdownSettings = new Gio.Settings({ schema_id: LOCKDOWN_SCHEMA });
+ this._lockdownSettings.connect(`changed::${DISABLE_SHOW_PASSWORD_KEY}`,
+ this._applyLockdownSettings.bind(this));
+
this._entry = entry;
this._clipboard = St.Clipboard.get_default();
@@ -39,6 +46,20 @@ var EntryMenu = class extends PopupMenu.PopupMenu {
item.connect('activate', this._onPasswordActivated.bind(this));
this.addMenuItem(item);
this._passwordItem = item;
+ this._applyLockdownSettings();
+ }
+
+ _applyLockdownSettings() {
+ if (!this._passwordItem)
+ return;
+
+ let passwordDisabled = this._lockdownSettings.get_boolean(DISABLE_SHOW_PASSWORD_KEY);
+
+ this._passwordItem.visible = !passwordDisabled;
+ this._entry.show_peek_icon = !passwordDisabled;
+
+ if (passwordDisabled)
+ this._entry.password_visible = false;
}
open(animate) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]