diff --git a/web/pgadmin/browser/__init__.py b/web/pgadmin/browser/__init__.py index 3b20f246..92cdaa1b 100644 --- a/web/pgadmin/browser/__init__.py +++ b/web/pgadmin/browser/__init__.py @@ -792,7 +792,7 @@ def set_master_password(): # Master password is not applicable for server mode if not config.SERVER_MODE and config.MASTER_PASSWORD_REQUIRED: - if data != '' and data.get('password', '') != '': + if data != '': # if master pass is set previously if current_user.masterpass_check is not None: if not validate_master_password(data.get('password')): diff --git a/web/pgadmin/browser/static/js/browser.js b/web/pgadmin/browser/static/js/browser.js index 4af69603..6080d3f0 100644 --- a/web/pgadmin/browser/static/js/browser.js +++ b/web/pgadmin/browser/static/js/browser.js @@ -12,7 +12,7 @@ define('pgadmin.browser', [ 'sources/gettext', 'sources/url_for', 'require', 'jquery', 'underscore', 'underscore.string', 'bootstrap', 'sources/pgadmin', 'pgadmin.alertifyjs', 'bundled_codemirror', 'sources/check_node_visibility', './toolbar', 'pgadmin.help', - 'sources/csrf', 'sources/keyboard_shortcuts', 'pgadmin.browser.utils', + 'sources/csrf', 'pgadmin.browser.utils', 'wcdocker', 'jquery.contextmenu', 'jquery.aciplugin', 'jquery.acitree', 'pgadmin.browser.preferences', 'pgadmin.browser.messages', 'pgadmin.browser.menu', 'pgadmin.browser.panel', 'pgadmin.browser.layout', @@ -24,7 +24,7 @@ define('pgadmin.browser', [ tree, gettext, url_for, require, $, _, S, Bootstrap, pgAdmin, Alertify, codemirror, - checkNodeVisibility, toolBar, help, csrfToken, keyboardFunc + checkNodeVisibility, toolBar, help, csrfToken ) { window.jQuery = window.$ = $; // Some scripts do export their object in the window only. @@ -497,7 +497,7 @@ define('pgadmin.browser', [ .fail(function() {}); }, 300000); - obj.set_master_password(''); + obj.set_master_password(null); obj.Events.on('pgadmin:browser:tree:add', obj.onAddTreeNode, obj); obj.Events.on('pgadmin:browser:tree:update', obj.onUpdateTreeNode, obj); @@ -518,6 +518,9 @@ define('pgadmin.browser', [ this.message = message; this.reset = reset; }, + build: function() { + Alertify.pgDialogBuild.apply(this); + }, setup:function() { return { buttons:[{ @@ -547,30 +550,13 @@ define('pgadmin.browser', [ }, prepare:function() { let self = this; - let $password = null; - let $okBtn = $(self.__internal.buttons[3].element); - self.setContent(self.message); - $password = $(self.elements.body).find('#password'); - /* Reset button hide */ if(!self.reset) { $(self.__internal.buttons[1].element).addClass('d-none'); } else { $(self.__internal.buttons[1].element).removeClass('d-none'); } - - /* Enable ok only if password entered */ - $okBtn.prop('disabled', true); - $password.on('input change keyup', (event)=>{ - keyboardFunc._stopEventPropagation(event); - - if($password.val() != '') { - $okBtn.prop('disabled', false); - } else { - $okBtn.prop('disabled', true); - } - }); }, callback: function(event) { let parentDialog = this; @@ -644,17 +630,17 @@ define('pgadmin.browser', [ contentType: 'application/json', }).done((res)=> { if(!res.data) { - self.set_master_password(''); + self.set_master_password(null); } }).fail(function(xhr, status, error) { Alertify.pgRespErrorNotify(xhr, error); }); }, - set_master_password: function(password='', set_callback=()=>{}) { + set_master_password: function(password=null, set_callback=()=>{}) { let data=null, self = this; - if(password != null || password!='') { + if(password != null) { data = JSON.stringify({ 'password': password, }); @@ -1824,7 +1810,7 @@ define('pgadmin.browser', [ /** Check if master password set **/ self.check_master_password((is_set)=>{ if(!is_set) { - self.set_master_password('', ()=>{ + self.set_master_password(null, ()=>{ if(isSelected) { self.tree.select(_nodeData); } self.tree.open(_nodeData); }); diff --git a/web/pgadmin/static/js/alertify.pgadmin.defaults.js b/web/pgadmin/static/js/alertify.pgadmin.defaults.js index 8150399b..2dad7fc8 100644 --- a/web/pgadmin/static/js/alertify.pgadmin.defaults.js +++ b/web/pgadmin/static/js/alertify.pgadmin.defaults.js @@ -109,7 +109,7 @@ define([ if(resp.info == 'CRYPTKEY_MISSING') { var pgBrowser = window.pgAdmin.Browser; - pgBrowser.set_master_password('', ()=> { + pgBrowser.set_master_password(null, ()=> { if(onJSONResult && typeof(onJSONResult) == 'function') { onJSONResult('CRYPTKEY_SET'); } @@ -266,6 +266,17 @@ define([ this.set('onresized', alertifyDialogResized.bind(this, true)); this.set('onmaximized', alertifyDialogResized); this.set('onrestored', alertifyDialogResized); + + /* Set the key to null if it is not defined + * When Browser autofill drop down value is clicked it raises a keyup event + * with undefined keyCode. The undefined keyCode matches the undefined key + * of alertify and triggers the button + */ + for(let i=0; i{ + pgBrowser.set_master_password(null, ()=>{ this.warn_before_continue(); }); },