public inbox for [email protected]
help / color / mirror / Atom feedFrom: Khushboo Vashi <[email protected]>
To: pgadmin-hackers <[email protected]>
Subject: [pgAdmin4][Patch] - RM #5776 - Needlessly prompted for a password with SSPI logins
Date: Wed, 5 May 2021 11:28:48 +0530
Message-ID: <CAFOhELcewrxzYP5REkbbbLfrxGRm_8VM+0sq847PzmkmJUQAfg@mail.gmail.com> (raw)
Hi,
Please find the attached patch for RM #5776 - Needlessly prompted for a
password with SSPI logins.
To fix this issue, I have enabled the "Kerberos authentication" flag in
the server dialog for Desktop mode also. So, if this flag is set to True,
pgAdmin will not prompt for a password on connection/reconnection.
This patch also includes the Jasmine test failures caused by my previous
Kerberos patch.
Thanks,
Khushboo
Attachments:
[application/octet-stream] RM_5776.patch (5.5K, 3-RM_5776.patch)
download | inline diff:
diff --git a/web/pgadmin/browser/server_groups/servers/static/js/server.js b/web/pgadmin/browser/server_groups/servers/static/js/server.js
index fd525d763..b21cba431 100644
--- a/web/pgadmin/browser/server_groups/servers/static/js/server.js
+++ b/web/pgadmin/browser/server_groups/servers/static/js/server.js
@@ -14,12 +14,11 @@ define('pgadmin.node.server', [
'pgadmin.alertifyjs', 'pgadmin.backform',
'sources/browser/server_groups/servers/model_validation',
'pgadmin.authenticate.kerberos',
- 'pgadmin.browser.constants',
'pgadmin.browser.server.privilege',
], function(
gettext, url_for, $, _, Backbone, pgAdmin, pgBrowser,
supported_servers, current_user, Alertify, Backform,
- modelValidation, Kerberos, pgConst,
+ modelValidation, Kerberos,
) {
if (!pgBrowser.Nodes['server']) {
@@ -910,11 +909,7 @@ define('pgadmin.node.server', [
id: 'kerberos_conn', label: gettext('Kerberos authentication?'), type: 'switch',
group: gettext('Connection'), 'options': {
'onText': gettext('True'), 'offText': gettext('False'), 'size': 'mini',
- }, disabled: function() {
- if (current_user['current_auth_source'] != pgConst['KERBEROS'])
- return true;
- return false;
- },
+ }
},{
id: 'password', label: gettext('Password'), type: 'password', maxlength: null,
group: gettext('Connection'), control: 'input', mode: ['create'],
diff --git a/web/pgadmin/tools/backup/static/js/backup_dialog_wrapper.js b/web/pgadmin/tools/backup/static/js/backup_dialog_wrapper.js
index 7e0ddd63f..1a59d420a 100644
--- a/web/pgadmin/tools/backup/static/js/backup_dialog_wrapper.js
+++ b/web/pgadmin/tools/backup/static/js/backup_dialog_wrapper.js
@@ -169,7 +169,7 @@ export class BackupDialogWrapper extends DialogWrapper {
this.setExtraParameters(selectedTreeNode, treeInfo);
let backupDate = this.view.model.toJSON();
- if(userInfo['auth_sources'] == 'KERBEROS' && (backupDate.type == 'globals' || backupDate.type == 'server')) {
+ if(userInfo['current_auth_source'] == 'KERBEROS' && (backupDate.type == 'globals' || backupDate.type == 'server')) {
let newPromise = fetch_ticket_lifetime();
newPromise.then(
function(lifetime) {
diff --git a/web/regression/javascript/backup/backup_dialog_wrapper_spec.js b/web/regression/javascript/backup/backup_dialog_wrapper_spec.js
index 24edadb82..1fcb44c04 100644
--- a/web/regression/javascript/backup/backup_dialog_wrapper_spec.js
+++ b/web/regression/javascript/backup/backup_dialog_wrapper_spec.js
@@ -46,6 +46,7 @@ describe('BackupDialogWrapper', () => {
},
keyboardNavigation: jasmine.createSpyObj('keyboardNavigation', ['getDialogTabNavigator']),
};
+
noDataNode = pgBrowser.treeMenu.addNewNode('level1.1', undefined, [{id: 'level1'}]);
serverTreeNode = pgBrowser.treeMenu.addNewNode('level2.1', {
_type: 'server',
diff --git a/web/regression/javascript/backup/global_server_backup_dialog_spec.js b/web/regression/javascript/backup/global_server_backup_dialog_spec.js
index d15a89556..77c635dff 100644
--- a/web/regression/javascript/backup/global_server_backup_dialog_spec.js
+++ b/web/regression/javascript/backup/global_server_backup_dialog_spec.js
@@ -20,7 +20,6 @@ describe('GlobalServerBackupDialog', () => {
let alertifySpy;
let backupModelSpy;
-
let rootNode;
let serverTreeNode;
let ppasServerTreeNode;
@@ -74,7 +73,6 @@ describe('GlobalServerBackupDialog', () => {
alertifySpy,
backupModelSpy
);
-
pgBrowser.get_preference = jasmine.createSpy('get_preferences');
});
diff --git a/web/regression/javascript/fake_constants.js b/web/regression/javascript/fake_constants.js
new file mode 100644
index 000000000..4bc7a1651
--- /dev/null
+++ b/web/regression/javascript/fake_constants.js
@@ -0,0 +1,17 @@
+//////////////////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2021, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////////////////
+
+define(function () {
+ return {
+ 'INTERNAL': 'internal',
+ 'LDAP': 'ldap',
+ 'KERBEROS': 'kerberos'
+ };
+});
+
diff --git a/web/regression/javascript/fake_current_user.js b/web/regression/javascript/fake_current_user.js
new file mode 100644
index 000000000..6ad0b45b8
--- /dev/null
+++ b/web/regression/javascript/fake_current_user.js
@@ -0,0 +1,15 @@
+//////////////////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2021, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////////////////
+
+define(function () {
+ return {
+ 'current_auth_source': 'internal'
+ };
+});
+
diff --git a/web/webpack.test.config.js b/web/webpack.test.config.js
index e72798e9a..e0b6fd69f 100644
--- a/web/webpack.test.config.js
+++ b/web/webpack.test.config.js
@@ -179,6 +179,8 @@ module.exports = {
'pgadmin.tools.erd': path.join(__dirname, './pgadmin/tools/erd/static/js'),
'bundled_codemirror': path.join(__dirname, './pgadmin/static/bundle/codemirror'),
'tools': path.join(__dirname, './pgadmin/tools/'),
+ 'pgadmin.user_management.current_user': regressionDir + '/javascript/fake_current_user',
+ 'pgadmin.browser.constants': regressionDir + '/javascript/fake_constants',
},
},
};
view thread (2+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected]
Subject: Re: [pgAdmin4][Patch] - RM #5776 - Needlessly prompted for a password with SSPI logins
In-Reply-To: <CAFOhELcewrxzYP5REkbbbLfrxGRm_8VM+0sq847PzmkmJUQAfg@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox