diff --git a/docs/en_US/developer_tools.rst b/docs/en_US/developer_tools.rst index 1ff442cc..bb67e33a 100644 --- a/docs/en_US/developer_tools.rst +++ b/docs/en_US/developer_tools.rst @@ -16,3 +16,4 @@ PL/SQL code. editgrid schema_diff erd_tool + psql_tool diff --git a/docs/en_US/images/psql_tool.png b/docs/en_US/images/psql_tool.png new file mode 100644 index 0000000000000000000000000000000000000000..f92e120211f962d6409959c48428177f69ad2d24 GIT binary patch literal 43302 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

lKr+1V*KAEhP^=$-*h@lVYkjdZ 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 SWZO^RbJ)ntFz=xA_5T1GN0V6q literal 0 HcmV?d00001 diff --git a/docs/en_US/images/tool_menu.png b/docs/en_US/images/tool_menu.png index 7747b95503584d4164c55738fa66a0644e8c7dcc..cc85469699ecbfe37ecf0d8d123b944af4fb6a10 100644 GIT binary patch literal 94562 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

K%qH7mgx?H7# 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

AK)z5;+RAC9~1^n&Hu|WdnMxTz=}+)pu9A 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�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%0D-NlnK%gelqO9|`%poZ~XyuF**dKg(*_% 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

k6m3s9%Y>P*~% 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 button to access the Data Filter popup to apply a filter to a set of data for viewing/editing. * Use the :ref:`Search objects ` button to access the search objects - dialog. It helps you search any database object. \ No newline at end of file + dialog. It helps you search any database object. +* Use the :ref:`PSQL Tool ` button to open the PSQL Tool in the selected + database context. \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index edd7000b..8227a4c0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,7 +8,6 @@ # ############################################################################### -cheroot==8.* Flask==1.* Flask-Gravatar==0.* Flask-Login==0.* @@ -36,3 +35,5 @@ sshtunnel==0.* ldap3==2.* Flask-BabelEx==0.* gssapi==1.6.* +flask-socketio>=5.0.1 +eventlet==0.30.2 diff --git a/web/config.py b/web/config.py index 2643ef19..002a9951 100644 --- a/web/config.py +++ b/web/config.py @@ -156,8 +156,8 @@ X_FRAME_OPTIONS = "SAMEORIGIN" # such as JavaScript, CSS, or pretty much anything that the browser loads. # see https://content-security-policy.com/#source_list for more info # e.g. "default-src https: data: 'unsafe-inline' 'unsafe-eval';" -CONTENT_SECURITY_POLICY = "default-src http: data: blob: 'unsafe-inline' " \ - "'unsafe-eval';" +CONTENT_SECURITY_POLICY = "default-src ws: http: data: blob: 'unsafe-inline'" \ + " 'unsafe-eval';" # STRICT_TRANSPORT_SECURITY_ENABLED when set to True will set the # Strict-Transport-Security header @@ -636,6 +636,19 @@ KRB_AUTO_CREATE_USER = True KERBEROS_CCACHE_DIR = os.path.join(DATA_DIR, 'krbccache') +# PSQL tool settings +# This will enable PSQL tool in pgAdmin. So user can execute the commands using +# PSQL terminal in pgAdmin. +ENABLE_PSQL = True + +# ALLOW_PSQL_SHELL_COMMAND = True will disable the execution of os level +# commands using meta command \! from PSQL terminal. +# As PSQL allow user to execute the os level commands from the PSQL terminal +# user can execute any system level command as per the system login user +# privileges. Default this setting is set to False but if it set to True +# User will able to execute the system level commands through PSQL terminal in +# pgAdmin. +ALLOW_PSQL_SHELL_COMMANDS = False ########################################################################## # Local config settings diff --git a/web/package.json b/web/package.json index 8ed32df9..19110fda 100644 --- a/web/package.json +++ b/web/package.json @@ -117,13 +117,18 @@ "shim-loader": "^1.0.1", "slickgrid": "git+https://github.com/6pac/SlickGrid.git#2.3.16", "snapsvg-cjs": "^0.0.6", + "socket.io-client": "^4.0.0", "split.js": "^1.5.10", "tablesorter": "^2.31.2", "tempusdominus-bootstrap-4": "^5.1.2", "tempusdominus-core": "^5.0.3", "underscore": "^1.13.1", "webcabin-docker": "git+https://github.com/EnterpriseDB/wcDocker/#c4a3398b89588408dc705895675bce7bd7660d36", - "wkx": "^0.5.0" + "wkx": "^0.5.0", + "xterm": "^4.11.0", + "xterm-addon-fit": "^0.5.0", + "xterm-addon-search": "^0.8.0", + "xterm-addon-web-links": "^0.4.0" }, "scripts": { "linter": "yarn eslint --no-eslintrc -c .eslintrc.js --ext .js --ext .jsx .", diff --git a/web/pgAdmin4.py b/web/pgAdmin4.py index d2bd1af6..dc1924cb 100644 --- a/web/pgAdmin4.py +++ b/web/pgAdmin4.py @@ -13,7 +13,7 @@ to start a web server.""" import sys -from cheroot.wsgi import Server as CherootServer + if sys.version_info < (3, 4): raise RuntimeError('This application must be run under Python 3.4 ' @@ -37,7 +37,7 @@ else: builtins.SERVER_MODE = None import config -from pgadmin import create_app +from pgadmin import create_app, socketio from pgadmin.utils import u_encode, fs_encoding, file_quote from pgadmin.utils.constants import INTERNAL # Get the config database schema version. We store this in pgadmin.model @@ -97,6 +97,8 @@ if not os.path.isfile(config.SQLITE_PATH): ########################################################################## app = create_app() app.debug = False +app.config['sessions'] = dict() + if config.SERVER_MODE: app.wsgi_app = ReverseProxied(app.wsgi_app) @@ -206,17 +208,16 @@ def main(): else: # Can use cheroot instead of flask dev server when not in debug # 10 is default thread count in CherootServer - num_threads = 10 if config.THREADED_MODE else 1 - prod_server = CherootServer( - (config.DEFAULT_SERVER, config.EFFECTIVE_SERVER_PORT), - wsgi_app=app, - numthreads=num_threads, - server_name=config.APP_NAME) + # num_threads = 10 if config.THREADED_MODE else 1 try: - print("Using production server...") - prod_server.start() + socketio.run( + app, + host=config.DEFAULT_SERVER, + port=config.EFFECTIVE_SERVER_PORT, + ) except KeyboardInterrupt: - prod_server.stop() + print("CLOSE SERVER") + socketio.stop() except IOError: app.logger.error("Error starting the app server: %s", sys.exc_info()) diff --git a/web/pgadmin/__init__.py b/web/pgadmin/__init__.py index a7333537..fad91082 100644 --- a/web/pgadmin/__init__.py +++ b/web/pgadmin/__init__.py @@ -19,6 +19,7 @@ from collections import defaultdict from importlib import import_module from flask import Flask, abort, request, current_app, session, url_for +from flask_socketio import SocketIO from werkzeug.exceptions import HTTPException from flask_babelex import Babel, gettext from flask_babelex import gettext as _ @@ -52,10 +53,15 @@ import mimetypes mimetypes.add_type('application/javascript', '.js') mimetypes.add_type('text/css', '.css') + winreg = None if os.name == 'nt': import winreg +socketio = SocketIO(manage_session=False, async_mode='eventlet', + logger=False, engineio_logger=False, debug=False, + ping_interval=25, ping_timeout=120) + class PgAdmin(Flask): def __init__(self, *args, **kwargs): @@ -811,4 +817,5 @@ def create_app(app_name=None): ########################################################################## # All done! ########################################################################## + socketio.init_app(app) return app diff --git a/web/pgadmin/browser/register_browser_preferences.py b/web/pgadmin/browser/register_browser_preferences.py index 235db027..d835ca82 100644 --- a/web/pgadmin/browser/register_browser_preferences.py +++ b/web/pgadmin/browser/register_browser_preferences.py @@ -10,6 +10,7 @@ from flask_babelex import gettext from pgadmin.utils.constants import PREF_LABEL_DISPLAY,\ PREF_LABEL_KEYBOARD_SHORTCUTS, PREF_LABEL_TABS_SETTINGS, \ PREF_LABEL_OPTIONS +from flask_security import current_user import config LOCK_LAYOUT_LEVEL = { @@ -511,10 +512,12 @@ def register_browser_preferences(self): options=[{'label': gettext('Query Tool'), 'value': 'qt'}, {'label': gettext('Debugger'), 'value': 'debugger'}, {'label': gettext('Schema Diff'), 'value': 'schema_diff'}, - {'label': gettext('ERD Tool'), 'value': 'erd_tool'}], - help_str=gettext('Select Query Tool, Debugger, or Schema Diff from ' - 'the drop-down to set open in new browser tab for ' - 'that particular module.'), + {'label': gettext('ERD Tool'), 'value': 'erd_tool'}, + {'label': gettext('PSQL Tool'), 'value': 'psql_tool'}], + help_str=gettext('Select Query Tool, Debugger, Schema Diff, ERD Tool ' + 'or PSQL Tool from the drop-down to set ' + 'open in new browser tab for that particular module.' + ), select2={ 'multiple': True, 'allowClear': False, 'tags': True, 'first_empty': False, @@ -523,3 +526,16 @@ def register_browser_preferences(self): 'placeholder': gettext('Select open new tab...') } ) + + self.psql_tab_title = self.preference.register( + 'tab_settings', 'psql_tab_title_placeholder', + gettext("PSQL tool tab title"), + 'text', '%DATABASE%/%USERNAME%@%SERVER%', + category_label=PREF_LABEL_DISPLAY, + help_str=gettext( + 'Supported placeholders are %DATABASE%, %USERNAME%, and %SERVER%. ' + 'Users can provide any string with or without placeholders of' + ' their choice. The blank title will be revert back to the' + ' default title with placeholders.' + ) + ) diff --git a/web/pgadmin/browser/server_groups/servers/__init__.py b/web/pgadmin/browser/server_groups/servers/__init__.py index f4165c32..fb7ff12c 100644 --- a/web/pgadmin/browser/server_groups/servers/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/__init__.py @@ -34,6 +34,7 @@ from pgadmin.utils.constants import UNAUTH_REQ, MIMETYPE_APP_JS, \ SERVER_CONNECTION_CLOSED from sqlalchemy import or_ from pgadmin.utils.preferences import Preferences +from .... import socketio as sio def has_any(data, keys): @@ -1499,6 +1500,13 @@ class ServerNode(PGChildNodeView): # Release Connection manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(sid) + # Check if any psql terminal is running for the current disconnecting + # server. If any terminate the psql tool connection. + if 'sid_soid_mapping' in current_app.config and str(sid) in \ + current_app.config['sid_soid_mapping']: + if str(sid) in current_app.config['sid_soid_mapping']: + for i in current_app.config['sid_soid_mapping'][str(sid)]: + sio.emit('disconnect-psql', namespace='/pty', to=i) status = manager.release() diff --git a/web/pgadmin/browser/server_groups/servers/databases/static/js/database.js b/web/pgadmin/browser/server_groups/servers/databases/static/js/database.js index 01ab89c5..eb20cac5 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/static/js/database.js +++ b/web/pgadmin/browser/server_groups/servers/databases/static/js/database.js @@ -122,6 +122,9 @@ define('pgadmin.node.database', [ is_connected: function(node) { return (node && node.connected == true && node.canDisconn == true); }, + is_psql_enabled: function(node) { + return (node && node.connected == true) && pgAdmin['enable_psql']; + }, is_conn_allow: function(node) { return (node && node.allowConn == true); }, 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 45dea090..ffd715f8 100644 --- a/web/pgadmin/browser/server_groups/servers/static/js/server.js +++ b/web/pgadmin/browser/server_groups/servers/static/js/server.js @@ -101,7 +101,8 @@ define('pgadmin.node.server', [ icon: 'fa fa-unlink', enable : 'is_connected',data: { data_disabled: gettext('Database is already disconnected.'), }, - },{ + }, + { name: 'reload_configuration', node: 'server', module: this, applies: ['tools', 'context'], callback: 'reload_configuration', category: 'reload', priority: 6, label: gettext('Reload Configuration'), @@ -728,6 +729,14 @@ define('pgadmin.node.server', [ return false; }, + /* Open psql tool for server*/ + server_psql_tool: function(args) { + var input = args || {}, + t = pgBrowser.tree, + i = input.item || t.selected(), + d = i && i.length == 1 ? t.itemData(i) : undefined; + pgBrowser.psql.psql_tool(d, i, true); + } }, model: pgAdmin.Browser.Node.Model.extend({ defaults: { diff --git a/web/pgadmin/browser/static/js/collection.js b/web/pgadmin/browser/static/js/collection.js index 3823ef35..e763aa11 100644 --- a/web/pgadmin/browser/static/js/collection.js +++ b/web/pgadmin/browser/static/js/collection.js @@ -64,6 +64,14 @@ define([ priority: 997, label: gettext('Search Objects...'), icon: 'fa fa-search', }]); + + // show psql tool same as query tool. + pgAdmin.Browser.add_menus([{ + name: 'show_psql_tool', node: this.type, module: this, + applies: ['context'], callback: 'show_psql_tool', + priority: 998, label: gettext('PSQL Tool (Beta)'), + icon: 'fas fa-terminal', + }]); } } }, @@ -498,6 +506,13 @@ define([ pgAdmin.SearchObjects.show_search_objects('', pgAdmin.Browser.tree.selected()); } }, + show_psql_tool: function(args) { + var input = args || {}, + t = pgBrowser.tree, + i = input.item || t.selected(), + d = i && i.length == 1 ? t.itemData(i) : undefined; + pgBrowser.psql.psql_tool(d, i, true); + }, }); return pgBrowser.Collection; diff --git a/web/pgadmin/browser/static/js/node.js b/web/pgadmin/browser/static/js/node.js index 1c5af3f5..9680af2e 100644 --- a/web/pgadmin/browser/static/js/node.js +++ b/web/pgadmin/browser/static/js/node.js @@ -209,6 +209,16 @@ define('pgadmin.browser.node', [ priority: 997, label: gettext('Search Objects...'), icon: 'fa fa-search', enable: enable, }]); + + if(pgAdmin['enable_psql']) { + // show psql tool same as query tool. + pgAdmin.Browser.add_menus([{ + name: 'show_psql_tool', node: this.type, module: this, + applies: ['context'], callback: 'show_psql_tool', + priority: 998, label: gettext('PSQL Tool (Beta)'), + icon: 'fas fa-terminal', + }]); + } } // This will add options of scripts eg:'CREATE Script' @@ -902,6 +912,15 @@ define('pgadmin.browser.node', [ pgAdmin.DataGrid.show_query_tool('', i); }, + // Callback to render psql tool. + show_psql_tool: function(args) { + var input = args || {}, + t = pgBrowser.tree, + i = input.item || t.selected(), + d = i && i.length == 1 ? t.itemData(i) : undefined; + pgBrowser.psql.psql_tool(d, i, true); + }, + // Logic to change the server background colour // There is no way of applying CSS to parent element so we have to // do it via JS code only diff --git a/web/pgadmin/browser/static/js/panel.js b/web/pgadmin/browser/static/js/panel.js index c9e64132..3068aabe 100644 --- a/web/pgadmin/browser/static/js/panel.js +++ b/web/pgadmin/browser/static/js/panel.js @@ -122,10 +122,30 @@ define( myPanel.on(ev, that.handleVisibility.bind(myPanel, ev)); }); } + + // Listen on detach panel event + myPanel.on(wcDocker.EVENT.DETACHED, function(obj) { + that.setCodeMirrorHeight(obj); + }); }, }); } }, + setCodeMirrorHeight: function() { + // Fix for mac os code-mirror showing black screen. + var txtArea = $('.pg-panel-content .sql_textarea > textarea').first(); + txtArea.css('z-index', -1); + var $tabContent = $('.pg-panel-content > .sql_textarea').first(); + var $sqlPane = $tabContent.find('.CodeMirror > div > textarea'); + for(let i=0; i<$sqlPane.length; i++) {$($sqlPane[i]).css('z-index', -1);} + + $tabContent = $('.pg-panel-content > .sql_textarea').first(); + $sqlPane = $tabContent.find('.pg-panel-content'); + $sqlPane.find('.CodeMirror').css( + 'cssText', + 'height: ' + ($tabContent.height()) + 'px !important;' + ); + }, eventFunc: function(eventName) { var name = $(this).data('pgAdminName'); diff --git a/web/pgadmin/browser/static/js/toolbar.js b/web/pgadmin/browser/static/js/toolbar.js index 09baaf22..65e29c85 100644 --- a/web/pgadmin/browser/static/js/toolbar.js +++ b/web/pgadmin/browser/static/js/toolbar.js @@ -56,9 +56,23 @@ let _defaultToolBarButtons = [ toggleClass: '', parentClass: 'pg-toolbar-btn btn-primary-icon', enabled: false, - }, + } ]; +if(pgAdmin['enable_psql']) { + _defaultToolBarButtons.push({ + label: gettext('PSQL Tool'), + ariaLabel: gettext('PSQL Tool'), + btnClass: 'fas fa-terminal', + text: '', + toggled: false, + toggleClass: '', + parentClass: 'pg-toolbar-btn btn-primary-icon pg-toolbar-psql', + enabled: false, + }); +} + + // Place holder for non default tool bar buttons. let _otherToolbarButtons = []; @@ -105,6 +119,13 @@ export function initializeToolbar(panel, wcDocker) { pgAdmin.DataGrid.show_filtered_row({mnuid: 4}, pgAdmin.Browser.tree.selected()); else if ('name' in data && data.name === gettext('Search objects')) pgAdmin.SearchObjects.show_search_objects('', pgAdmin.Browser.tree.selected()); + else if ('name' in data && data.name === gettext('PSQL Tool')){ + var input = {}, + t = pgAdmin.Browser.tree, + i = input.item || t.selected(), + d = i && i.length == 1 ? t.itemData(i) : undefined; + pgAdmin.Browser.psql.psql_tool(d, i, true); + } }); } diff --git a/web/pgadmin/browser/static/scss/_browser.scss b/web/pgadmin/browser/static/scss/_browser.scss index 0d157384..ae72f0e6 100644 --- a/web/pgadmin/browser/static/scss/_browser.scss +++ b/web/pgadmin/browser/static/scss/_browser.scss @@ -53,3 +53,9 @@ samp, border-width: 1px; font-size: 1.15em; } + +.pg-toolbar-psql { + padding-top: 0em; + font-size: inherit; + align-items: center; +} diff --git a/web/pgadmin/browser/templates/browser/js/utils.js b/web/pgadmin/browser/templates/browser/js/utils.js index 8597df48..b0a317a5 100644 --- a/web/pgadmin/browser/templates/browser/js/utils.js +++ b/web/pgadmin/browser/templates/browser/js/utils.js @@ -52,6 +52,10 @@ define('pgadmin.browser.utils', pgAdmin['user_inactivity_timeout'] = {{ current_app.config.get('USER_INACTIVITY_TIMEOUT') }}; pgAdmin['override_user_inactivity_timeout'] = '{{ current_app.config.get('OVERRIDE_USER_INACTIVITY_TIMEOUT') }}' == 'True'; + /* GET PSQL Tool related config */ + pgAdmin['enable_psql'] = '{{ current_app.config.get('ENABLE_PSQL') }}' == 'True'; + pgAdmin['allow_psql_shell_commands'] = '{{ current_app.config.get('ALLOW_PSQL_SHELL_COMMANDS') }}' == 'True'; + // Define list of nodes on which Query tool option doesn't appears var unsupported_nodes = pgAdmin.unsupported_nodes = [ 'server_group', 'server', 'coll-tablespace', 'tablespace', diff --git a/web/pgadmin/browser/utils.py b/web/pgadmin/browser/utils.py index 312b0ee1..5e22f2d5 100644 --- a/web/pgadmin/browser/utils.py +++ b/web/pgadmin/browser/utils.py @@ -62,7 +62,8 @@ def underscore_unescape(text): ">": '>', """: '"', "`": '`', - "'": "'" + "'": "'", + "'": "'" } # always replace & first diff --git a/web/pgadmin/static/bundle/browser.js b/web/pgadmin/static/bundle/browser.js index 14140a2f..0b3ad81b 100644 --- a/web/pgadmin/static/bundle/browser.js +++ b/web/pgadmin/static/bundle/browser.js @@ -11,6 +11,7 @@ define('bundled_browser',[ 'pgadmin.browser', 'sources/browser/index', 'top/tools/erd/static/js/index', + 'top/tools/psql/static/js/index', ], function(pgBrowser) { pgBrowser.init(); }); diff --git a/web/pgadmin/static/css/style.css b/web/pgadmin/static/css/style.css index c2a776c8..5b4a9f2d 100644 --- a/web/pgadmin/static/css/style.css +++ b/web/pgadmin/static/css/style.css @@ -21,3 +21,5 @@ @import '../vendor/backgrid/backgrid.css'; @import '../vendor/backgrid/backgrid-select-all.css'; + +@import 'node_modules/xterm/css/xterm.css'; diff --git a/web/pgadmin/static/scss/pgadmin.scss b/web/pgadmin/static/scss/pgadmin.scss index 6c38c6f7..2e5bc6d9 100644 --- a/web/pgadmin/static/scss/pgadmin.scss +++ b/web/pgadmin/static/scss/pgadmin.scss @@ -10,6 +10,11 @@ $theme-colors: ( --color-fg: #{$color-fg}; --color-bg: #{$color-bg}; --border-color: #{$border-color}; + --psql-background: #{$psql-background}; + --psql-foreground: #{$psql-foreground}; + --psql-cursor: #{$psql-cursor}; + --psql-cursorAccent: #{$psql-cursorAccent}; + --psql-selection: #{$psql-selection}; } @import "bootstrap/scss/bootstrap"; diff --git a/web/pgadmin/static/scss/resources/_default.variables.scss b/web/pgadmin/static/scss/resources/_default.variables.scss index ce33424e..d9fb6653 100644 --- a/web/pgadmin/static/scss/resources/_default.variables.scss +++ b/web/pgadmin/static/scss/resources/_default.variables.scss @@ -371,3 +371,10 @@ $erd-link-selected-color: $color-fg !default; $erd-bg-grid: url("data:image/svg+xml, %3Csvg width='100%25' viewBox='0 0 45 45' style='background-color:#{url-friendly-colour($erd-canvas-bg)}' height='100%25' xmlns='http://www.w3.org/2000/svg'%3E%3Cdefs%3E%3Cpattern id='smallGrid' width='15' height='15' patternUnits='userSpaceOnUse'%3E%3Cpath d='M 15 0 L 0 0 0 15' fill='none' stroke='#{url-friendly-colour($erd-canvas-grid)}' stroke-width='0.5'/%3E%3C/pattern%3E%3Cpattern id='grid' width='45' height='45' patternUnits='userSpaceOnUse'%3E%3Crect width='100' height='100' fill='url(%23smallGrid)'/%3E%3Cpath d='M 100 0 L 0 0 0 100' fill='none' stroke='#{url-friendly-colour($erd-canvas-grid)}' stroke-width='1'/%3E%3C/pattern%3E%3C/defs%3E%3Crect width='100%25' height='100%25' fill='url(%23grid)' /%3E%3C/svg%3E%0A"); $select2-readonly: $color-gray-lighter !default; + +// psql tool variables +$psql-background: $color-bg !default; +$psql-foreground: $color-fg !default; +$psql-cursor: $color-fg !default; +$psql-cursorAccent: $color-fg !default; +$psql-selection: #326690 !default; diff --git a/web/pgadmin/static/scss/resources/dark/_theme.variables.scss b/web/pgadmin/static/scss/resources/dark/_theme.variables.scss index efa36df8..2fa907b8 100644 --- a/web/pgadmin/static/scss/resources/dark/_theme.variables.scss +++ b/web/pgadmin/static/scss/resources/dark/_theme.variables.scss @@ -136,3 +136,10 @@ $erd-link-color: $color-fg; $erd-link-selected-color: $color-fg; $select2-readonly: $color-bg; + +// psql tool variables +$psql-background: $color-bg; +$psql-foreground: $color-fg; +$psql-cursor: $color-fg; +$psql-cursorAccent: $color-fg; +$psql-selection: #d6effc; diff --git a/web/pgadmin/static/scss/resources/high_contrast/_theme.variables.scss b/web/pgadmin/static/scss/resources/high_contrast/_theme.variables.scss index 682f2622..b4783bce 100644 --- a/web/pgadmin/static/scss/resources/high_contrast/_theme.variables.scss +++ b/web/pgadmin/static/scss/resources/high_contrast/_theme.variables.scss @@ -207,3 +207,10 @@ $quick-search-a-text-color: $black !default; $quick-search-info-icon: #8A8A8A !default; $select2-readonly: $color-gray; + +// psql tool variables +$psql-background: $color-bg; +$psql-foreground: $color-fg; +$psql-cursor: $color-fg; +$psql-cursorAccent: $color-fg; +$psql-selection: $color-primary-light; diff --git a/web/pgadmin/tools/datagrid/static/js/datagrid_panel_title.js b/web/pgadmin/tools/datagrid/static/js/datagrid_panel_title.js index 1348cc45..42efc04d 100644 --- a/web/pgadmin/tools/datagrid/static/js/datagrid_panel_title.js +++ b/web/pgadmin/tools/datagrid/static/js/datagrid_panel_title.js @@ -100,6 +100,10 @@ export function generateTitle(title_placeholder, title_data) { title_placeholder = title_placeholder.replace(new RegExp('%ARGS%'), _.unescape(title_data.args)); title_placeholder = title_placeholder.replace(new RegExp('%SCHEMA%'), _.unescape(title_data.schema)); title_placeholder = title_placeholder.replace(new RegExp('%DATABASE%'), _.unescape(title_data.database)); + } else if(title_data.type == 'psql_tool') { + title_placeholder = title_placeholder.replace(new RegExp('%DATABASE%'), _.unescape(title_data.database)); + title_placeholder = title_placeholder.replace(new RegExp('%USERNAME%'), _.unescape(title_data.username)); + title_placeholder = title_placeholder.replace(new RegExp('%SERVER%'), _.unescape(title_data.server)); } return _.escape(title_placeholder); diff --git a/web/pgadmin/tools/psql/__init__.py b/web/pgadmin/tools/psql/__init__.py new file mode 100644 index 00000000..30b5237c --- /dev/null +++ b/web/pgadmin/tools/psql/__init__.py @@ -0,0 +1,686 @@ +#!/usr/bin/env python3 +import fcntl +import os +import pty +import re +import select +import struct +import termios +import config +import eventlet.green.subprocess as subprocess + +from config import PG_DEFAULT_DRIVER +from flask import Response, url_for, request +from flask import render_template, copy_current_request_context, \ + current_app as app +from flask_babelex import gettext +from flask_security import login_required, current_user +from pgadmin.browser.utils import underscore_unescape +from pgadmin.utils import PgAdminModule +from pgadmin.utils.constants import MIMETYPE_APP_JS +from pgadmin.utils.driver import get_driver +from ... import socketio as sio +from pgadmin.utils import get_complete_file_path + + +session_input = dict() +session_input_cursor = dict() +session_last_cmd = dict() +pdata = dict() +cdata = dict() + + +class PSQLModule(PgAdminModule): + """ + class PSQLModule(PgAdminModule) + A module class for PSQL derived from PgAdminModule. + """ + + LABEL = gettext("PSQL") + + def get_own_menuitems(self): + return {} + + def get_own_javascripts(self): + return [{ + 'name': 'pgadmin.psql', + 'path': url_for('psql.index') + "psql", + 'when': None + }] + + def get_panels(self): + return [] + + def get_exposed_url_endpoints(self): + """ + Returns: + list: URL endpoints for PSQL module + """ + return [ + 'psql.panel' + ] + + +blueprint = PSQLModule('psql', __name__, static_url_path='/static') + + +@blueprint.route("/psql.js") +@login_required +def script(): + """render the required javascript""" + return Response( + response=render_template("psql/js/psql.js", _=gettext), + status=200, + mimetype=MIMETYPE_APP_JS + ) + + +@blueprint.route('/panel/', + methods=["POST"], + endpoint="panel") +@login_required +def panel(trans_id): + """ + Return panel template for PSQL tools. + :param trans_id: + """ + params = { + 'trans_id': trans_id, + 'title': request.form['title'] + } + if 'sid_soid_mapping' not in app.config: + app.config['sid_soid_mapping'] = dict() + if request.args: + params.update({k: v for k, v in request.args.items()}) + # Set TERM env for xterm. + os.environ['TERM'] = 'xterm' + + return render_template('editor_template.html', + sid=params['sid'], + db=underscore_unescape(params['db']) if params[ + 'db'] else 'postgres', + server_type=params['server_type'], + is_enable=config.ENABLE_PSQL, + title=underscore_unescape(params['title']), + theme=params['theme'] + ) + + +def set_term_size(fd, row, col, xpix=0, ypix=0): + """ + Set the terminal size as per UI xterm size. + :param fd: + :param row: + :param col: + :param xpix: + :param ypix: + """ + term_size = struct.pack('HHHH', row, col, xpix, ypix) + fcntl.ioctl(fd, termios.TIOCSWINSZ, term_size) + + +@sio.on('connect', namespace='/pty') +def connect(): + """ + Connect to the server through socket. + :return: + :rtype: + """ + if config.ENABLE_PSQL: + sio.emit('connected', {'sid': request.sid}, namespace='/pty', + to=request.sid) + + if request.sid in session_last_cmd: + session_last_cmd[request.sid]['is_new_connection'] = False + else: + session_last_cmd[request.sid] = {'cmd': '', 'arrow_up': False, + 'invalid_cmd': False, + 'is_new_connection': False} + else: + sio.emit('conn_not_allow', {'sid': request.sid}, namespace='/pty', + to=request.sid) + + +def create_pty_terminal(connection_data): + # Create the pty terminal process, parent and fd are file descriptors + # for parent and child. + parent, fd = pty.openpty() + p = None + if parent is not None: + # Child process + p = subprocess.Popen(connection_data, + preexec_fn=os.setsid, + stdin=fd, + stdout=fd, + stderr=fd, + universal_newlines=True + ) + + app.config['sessions'][request.sid] = parent + pdata[request.sid] = p + cdata[request.sid] = fd + else: + app.config['sessions'][request.sid] = parent + cdata[request.sid] = fd + set_term_size(fd, 50, 50) + + return p, parent, fd + + +def read_terminal_data(parent, data_ready, max_read_bytes, sid): + """ + Read the terminal output. + :param parent: + :param data_ready: + :param max_read_bytes: + :param sid: + :return: + """ + if parent in data_ready: + # Read the output from parent fd (terminal). + output = os.read(parent, max_read_bytes) + emit_output = True + + if sid in session_last_cmd and session_last_cmd[sid][ + 'arrow_up'] and not session_last_cmd[request.sid][ + 'arrow_left_right']: + session_last_cmd[sid]['cmd'] = output.decode() + session_input_cursor[request.sid] = len( + session_last_cmd[sid]['cmd']) + session_last_cmd[sid]['arrow_up'] = True + + if sid in session_last_cmd and session_last_cmd[sid]['invalid_cmd']: + # If command is invalid then emit error to user. + emit_output = False + sio.emit( + 'pty-output', + { + 'result': gettext( + "ERROR: Shell commands are disabled " + "in psql for security\r\n"), + 'error': True + }, + namespace='/pty', room=sid) + # If command is valid then emit output to user. + if emit_output: + sio.emit('pty-output', + {'result': output.decode(), + 'error': False}, + namespace='/pty', room=sid) + else: + session_last_cmd[request.sid]['invalid_cmd'] = False + + +@sio.on('start_process', namespace='/pty') +def start_process(data): + """ + Start the pty terminal and execute psql command and emit results to user. + :param data: + :return: + """ + @copy_current_request_context + def read_and_forward_pty_output(sid, data): + max_read_bytes = 1024 * 20 + + p, parent, fd = create_pty_terminal(connection_data) + + while p and p.poll() is None: + if request.sid in app.config['sessions']: + # This code is added to make this unit testable. + if "is_test" not in data: + sio.sleep(0.01) + else: + data['count'] += 1 + if data['count'] == 5: + break + + timeout = 0 + # module provides access to platform-specific I/O + # monitoring functions + (data_ready, _, _) = select.select([parent, fd], [], [], + timeout) + + read_terminal_data(parent, data_ready, max_read_bytes, sid) + + # Check user is authenticated and PSQL is enabled in config. + if current_user.is_authenticated and config.ENABLE_PSQL: + connection_data = [] + try: + db = '' + if data['db']: + db = underscore_unescape(data['db']).replace('\\', "\\\\") + + conn, manager = _get_connection(int(data['sid']), data) + psql_utility = manager.utility('sql') + connection_data = get_connection_str(psql_utility, db, + manager) + except Exception as e: + # If any error raised during the start the PSQL emit error to UI. + # request.sid: This sid is socket id. + sio.emit( + 'conn_error', + { + 'error': 'Error while running psql command: {0}'.format(e), + }, namespace='/pty', room=request.sid) + + try: + if str(data['sid']) not in app.config['sid_soid_mapping']: + # request.sid: refer request.sid as socket id. + app.config['sid_soid_mapping'][str(data['sid'])] = list() + app.config['sid_soid_mapping'][str(data['sid'])].append( + request.sid) + else: + app.config['sid_soid_mapping'][str(data['sid'])].append( + request.sid) + + sio.start_background_task(read_and_forward_pty_output, + request.sid, data) + except Exception as e: + sio.emit( + 'conn_error', + { + 'error': 'Error while running psql command: {0}'.format(e), + }, namespace='/pty', room=request.sid) + else: + # Show error if user is not authenticated. + sio.emit('conn_not_allow', {'sid': request.sid}, namespace='/pty', + to=request.sid) + + +def _get_connection(sid, data): + """ + Get the connection object of ERD. + :param sid: + :param did: + :param trans_id: + :return: + """ + manager = get_driver(PG_DEFAULT_DRIVER).connection_manager(sid) + try: + conn = manager.connection() + # This is added for unit test only, no use in normal execution. + if 'pwd' in data: + kwargs = {'password': data['pwd'], "user": data['user']} + status, msg = conn.connect(**kwargs) + else: + status, msg = conn.connect() + if not status: + app.logger.error(msg) + sio.emit(sio.emit( + 'conn_error', + { + 'error': 'Error while running psql command: {0}' + ''.format('Server connection not present.'), + }, namespace='/pty', room=request.sid)) + raise RuntimeError('Server is not connected.') + + return conn, manager + except Exception as e: + app.logger.error(e) + raise + + +def get_connection_str(psql_utility, db, manager): + """ + Get connection string(through connection dsn) + :param psql_utility: PostgreSQL binary path. + :param db: database name to connect specific db. + :return: connection attribute list for PSQL connection. + """ + conn_attr = get_conn_str(manager, db) + conn_attr_list = list() + conn_attr_list.append(psql_utility) + conn_attr_list.append(conn_attr) + return conn_attr_list + + +def get_conn_str(manager, db): + """ + Get connection attributes for psql connection. + :param manager: + :param db: + :return: + """ + manager.export_password_env('PGPASSWORD') + conn_attr =\ + "host={0} port={1} dbname={2} user={3} sslmode={4} " \ + "sslcompression={5} " \ + "".format( + manager.local_bind_host if manager.use_ssh_tunnel else + manager.host, + manager.local_bind_port if manager.use_ssh_tunnel else + manager.port, + db if db != '' else 'postgres', + manager.user if manager.user else 'postgres', + manager.ssl_mode, + True if manager.sslcompression else False, + ) + + if manager.hostaddr: + conn_attr = " {0} hostaddr={1}".format(conn_attr, manager.hostaddr) + + if manager.passfile: + conn_attr = " {0} passfile={1}".format(conn_attr, + get_complete_file_path( + manager.passfile)) + + if get_complete_file_path(manager.sslcert): + conn_attr = " {0} sslcert={1}".format( + conn_attr, get_complete_file_path(manager.sslcert)) + + if get_complete_file_path(manager.sslkey): + conn_attr = " {0} sslkey={1}".format( + conn_attr, get_complete_file_path(manager.sslkey)) + + if get_complete_file_path(manager.sslrootcert): + conn_attr = " {0} sslrootcert={1}".format( + conn_attr, get_complete_file_path(manager.sslrootcert)) + + if get_complete_file_path(manager.sslcrl): + conn_attr = " {0} sslcrl={1}".format( + conn_attr, get_complete_file_path(manager.sslcrl)) + + if manager.service: + conn_attr = " {0} service={1}".format( + conn_attr, get_complete_file_path(manager.service)) + + return conn_attr + + +def check_last_exe_cmd(data): + """ + Check the is user try to execute last executed command. + :param data: + :return: + """ + # If user get previous executed command from history then set + # current command as previous executed command. + if session_last_cmd[request.sid]['cmd'] and session_last_cmd[request.sid][ + 'arrow_up']: + user_input = str( + session_last_cmd[request.sid]['cmd']).strip() + session_last_cmd[request.sid]['arrow_up'] = False + session_last_cmd[request.sid]['cmd'] = '' + else: + if request.sid not in session_input: + session_input[request.sid] = data['input'] + user_input = str(session_input[request.sid]).strip() + else: + user_input = str(session_input[request.sid]).strip() + + return user_input + + +def invalid_cmd(): + """ + Invalid command + :return: + :rtype: + """ + session_last_cmd[request.sid]['invalid_cmd'] = True + + for i in range(len(session_input[request.sid])): + os.write(app.config['sessions'][request.sid], + '\b \b'.encode()) + + os.write(app.config['sessions'][request.sid], + '\n'.encode()) + session_input[request.sid] = '' + + +def check_valid_cmd(user_input): + """ + Check if user entered a valid cmd and \\! command is preset as a string + only in current executing command. if \\! is present as command don't + allow the execution of command. + :param user_input: + :return: + """ + stop_execution = True + # Check \! is passed as string or not. + double_quote_strs = re.findall('"([^"]*)"', user_input) + if not double_quote_strs: + double_quote_strs = re.findall("'([^']*)'", user_input) + + if double_quote_strs: + for sub_str in double_quote_strs: + if re.search("\\\!", sub_str): + stop_execution = False + # break + + if stop_execution: + session_last_cmd[request.sid]['invalid_cmd'] = True + # Remove already added command from terminal. + for i in range(len(user_input)): + os.write(app.config['sessions'][request.sid], + '\b \b'.encode()) + # Add Enter event to execute the command. + os.write(app.config['sessions'][request.sid], + '\n'.encode()) + else: + session_last_cmd[request.sid]['invalid_cmd'] = False + os.write(app.config['sessions'][request.sid], + '\n'.encode()) + + +def enter_key_press(data): + """ + Handel the Enter key press event. + :param data: + """ + user_input = check_last_exe_cmd(data) + session_input_cursor[request.sid] = 0 + + # If ALLOW_PSQL_SHELL_COMMANDS is False then user can't execute + # \! meta command to run shell commands through PSQL terminal. + # Check before executing the user entered command does not + # contains \! in input. + is_new_connection = session_last_cmd[request.sid][ + 'is_new_connection'] + if user_input.startswith('\\!') and re.match("^\\\!$", user_input) and len( + user_input) == 2 and not config.ALLOW_PSQL_SHELL_COMMANDS \ + and not is_new_connection: + invalid_cmd() + elif re.search("\\\!", user_input) and \ + not config.ALLOW_PSQL_SHELL_COMMANDS and\ + not session_last_cmd[request.sid]['is_new_connection']: + check_valid_cmd(user_input) + elif user_input == '\q' or user_input == 'q\\q': + # If user enter \q to terminate the PSQL, emit the msg to + # notify user connection is terminated. + sio.emit('pty-output', + { + 'result': gettext( + 'Connection terminated, To create new ' + 'connection please open another psql' + ' tool.'), + 'error': True}, + namespace='/pty', room=request.sid) + os.write(app.config['sessions'][request.sid], + '\n'.encode()) + + else: + os.write(app.config['sessions'][request.sid], + data['input'].encode()) + session_input[request.sid] = '' + session_last_cmd[request.sid]['is_new_connection'] = False + + +def backspace_key_press(): + """ + Handel the backspace key press event. + :return: + :rtype: + """ + session_last_cmd[request.sid]['arrow_left_right'] = True + + if session_last_cmd[request.sid]['cmd']: + session_input[request.sid] = \ + session_last_cmd[request.sid]['cmd'] + + user_input = list(session_input[request.sid]) + + if session_input_cursor[request.sid] == 1: + index = 0 + session_input_cursor[request.sid] -= 1 + else: + if session_input_cursor[request.sid] > 0: + index = (session_input_cursor[request.sid]) - 1 + session_input_cursor[request.sid] -= 1 + else: + index = session_input_cursor[request.sid] + session_input_cursor[request.sid] = 0 + + if len(user_input): + del user_input[index] + session_input[request.sid] = "".join(user_input) + + if len(session_input[request.sid]) == 0: + session_input_cursor[request.sid] = 0 + session_last_cmd[request.sid]['cmd'] = '' + + +def set_user_input(data): + """ + Check and set current input as user input in session_input. + :param data: + """ + if session_last_cmd[request.sid]['cmd'] and \ + session_input[request.sid] == '': + session_input[request.sid] = \ + session_last_cmd[request.sid]['cmd'] + session_input_cursor[request.sid] = len( + session_input[request.sid]) + else: + session_last_cmd[request.sid]['arrow_up'] = False + session_last_cmd[request.sid]['cmd'] = '' + user_input = list(session_input[request.sid]) + user_input.insert(session_input_cursor[request.sid], + data['input']) + session_input[request.sid] = ''.join(user_input) + session_input_cursor[request.sid] += 1 + session_last_cmd[request.sid]['arrow_left_right'] = False + + +def other_key_press(data): + """ + Handel the other key press from psql tool. + :param data: + :type data: + :return: + :rtype: + """ + if data['key_name'] == 'ArrowLeft': + session_last_cmd[request.sid]['arrow_left_right'] = True + if session_input_cursor[request.sid] > 0: + session_input_cursor[request.sid] -= 1 + + elif data['key_name'] == 'ArrowRight': + session_last_cmd[request.sid]['arrow_left_right'] = True + if session_input_cursor[request.sid] < len( + session_input[request.sid]): + session_input_cursor[request.sid] += 1 + + elif data['key_name'] == 'ArrowUp': + session_last_cmd[request.sid]['arrow_up'] = True + session_last_cmd[request.sid]['arrow_left_right'] = False + session_input[request.sid] = session_last_cmd[request.sid][ + 'cmd'] + session_input_cursor[request.sid] = len( + session_last_cmd[request.sid]['cmd']) + + elif request.sid in session_input and \ + data['key_name'] == 'Backspace' and \ + (len(session_input[request.sid]) or + len(session_last_cmd[request.sid])): + backspace_key_press() + elif request.sid in session_input: + set_user_input(data) + else: + session_input_cursor[request.sid] = 0 + session_input[request.sid] = data['input'] + session_input_cursor[request.sid] += 1 + + # Write user input to terminal parent fd. + os.write(app.config['sessions'][request.sid], + data['input'].encode()) + + +@sio.on('socket_input', namespace='/pty') +def socket_input(data): + """ + This get the user input through socket. + :param data: User input from socket. + """ + try: + # request.sid: refer request.sid as socket id. + # Check PSQL enabled setting from config. + enable_psql = True if config.ENABLE_PSQL else False + + if request.sid in app.config['sessions']: + if data['key_name'] == 'Enter' and enable_psql: + enter_key_press(data) + else: + other_key_press(data) + except Exception as e: + # Delete socket id from sessions. + # request.sid: refer request.sid as socket id. + sio.emit('pty-output', + { + 'result': gettext('Invalid session.\r\n'), + 'error': True + }, + namespace='/pty', room=request.sid) + del app.config['sessions'][request.sid] + + +@sio.on('resize', namespace='/pty') +def resize(data): + """ + Resize the pty terminal as per the UI terminal. + :param data: UI terminal rows and cols data + """ + # request.sid: refer request.sid as socket id. + if request.sid in app.config['sessions']: + set_term_size(app.config['sessions'][request.sid], data['rows'], + data['cols']) + + +@sio.on('disconnect', namespace='/pty') +def disconnect(): + """ + Disconnect the socket and terminate the process + """ + # request.sid: refer request.sid as socket id. + if request.sid in pdata: + # On disconnect socket manually exit the psql terminal and close the + # parend and child fd then kill the subprocess. + disconnect_socket() + + +@sio.on('server-disconnect', namespace='/pty') +def server_disconnect(data): + """ + Disconnect the socket and terminate the process after user disconnect + the server. we can't use disconnect event name as it is reserved for socket + internal use. + """ + # request.sid: refer request.sid as socket id. + if request.sid in pdata and request.sid in app.config['sid_soid_mapping'][ + data['sid']]: + # On disconnect socket manually exit the psql terminal and close the + # parend and child fd then kill the subprocess. + app.config['sid_soid_mapping'][data['sid']] = [soid for soid in + app.config[ + 'sid_soid_mapping'][ + data['sid']] if + soid != request.sid] + disconnect_socket() + + +def disconnect_socket(): + os.write(app.config['sessions'][request.sid], '\q\n'.encode()) + sio.sleep(1) + os.close(app.config['sessions'][request.sid]) + os.close(cdata[request.sid]) + del app.config['sessions'][request.sid] diff --git a/web/pgadmin/tools/psql/static/js/index.js b/web/pgadmin/tools/psql/static/js/index.js new file mode 100644 index 00000000..4d88ba04 --- /dev/null +++ b/web/pgadmin/tools/psql/static/js/index.js @@ -0,0 +1,23 @@ +///////////////////////////////////////////////////////////// +// +// pgAdmin 4 - PostgreSQL Tools +// +// Copyright (C) 2013 - 2021, The pgAdmin Development Team +// This software is released under the PostgreSQL Licence +// +////////////////////////////////////////////////////////////// + +import gettext from 'sources/gettext'; +import url_for from 'sources/url_for'; +import $ from 'jquery'; +import _ from 'underscore'; +import pgAdmin from 'sources/pgadmin'; +import pgBrowser from 'top/browser/static/js/browser'; +import * as csrfToken from 'sources/csrf'; +import {initialize} from './psql_module'; + +let pgBrowserOut = initialize(gettext, url_for, $, _, pgAdmin, csrfToken, pgBrowser); + +module.exports = { + pgBrowser: pgBrowserOut, +}; diff --git a/web/pgadmin/tools/psql/static/js/psql_module.js b/web/pgadmin/tools/psql/static/js/psql_module.js new file mode 100644 index 00000000..9ff02aa5 --- /dev/null +++ b/web/pgadmin/tools/psql/static/js/psql_module.js @@ -0,0 +1,429 @@ +///////////////////////////////////////////////////////////// +// +// pgAdmin 4 - PostgreSQL Tools +// +// Copyright (C) 2013 - 2021, The pgAdmin Development Team +// This software is released under the PostgreSQL Licence +// +////////////////////////////////////////////////////////////// +import { Terminal } from 'xterm'; +import { FitAddon } from 'xterm-addon-fit'; +import { WebLinksAddon } from 'xterm-addon-web-links'; +import { SearchAddon } from 'xterm-addon-search'; +import { io } from 'socketio'; +import Alertify from 'pgadmin.alertifyjs'; +import {enable} from 'pgadmin.browser.toolbar'; +import clipboard from 'sources/selection/clipboard'; +import 'wcdocker'; +import {getRandomInt} from 'sources/utils'; + +import {getTreeNodeHierarchyFromIdentifier} from 'sources/tree/pgadmin_tree_node'; +import {generateTitle} from 'tools/datagrid/static/js/datagrid_panel_title'; + + +export function setPanelTitle(psqlToolPanel, panelTitle) { + psqlToolPanel.title(''+panelTitle+''); +} + +var wcDocker = window.wcDocker; + +export function initialize(gettext, url_for, $, _, pgAdmin, csrfToken, Browser) { + var pgBrowser = Browser; + var terminal = Terminal; + var parentData = null; + /* Return back, this has been called more than once */ + if (pgBrowser.psql) + return pgBrowser.psql; + + + // Create an Object Restore of pgBrowser class + pgBrowser.psql = { + init: function() { + this.initialized = true; + csrfToken.setPGCSRFToken(pgAdmin.csrf_token_header, pgAdmin.csrf_token); + // Define the nodes on which the menus to be appear + var menus = [{ + name: 'psql', + module: this, + applies: ['tools'], + callback: 'psql_tool', + priority: 1, + label: gettext('PSQL Tool (Beta)'), + enable: this.psqlToolEnabled, + }]; + + this.enable_psql_tool = pgAdmin['enable_psql']; + if(pgAdmin['enable_psql']) { + pgBrowser.add_menus(menus); + } + + // Creating a new pgBrowser frame to show the data. + var psqlFrameType = new pgBrowser.Frame({ + name: 'frm_psqltool', + showTitle: true, + isCloseable: true, + isPrivate: true, + url: 'about:blank', + }); + + var self = this; + /* Cache may take time to load for the first time + * Keep trying till available + */ + let cacheIntervalId = setInterval(function() { + if(pgBrowser.preference_version() > 0) { + self.preferences = pgBrowser.get_preferences_for_module('psql'); + clearInterval(cacheIntervalId); + } + },0); + + pgBrowser.onPreferencesChange('psql', function() { + self.preferences = pgBrowser.get_preferences_for_module('psql'); + }); + + // Load the newly created frame + psqlFrameType.load(pgBrowser.docker); + return this; + }, + /* Enable/disable PSQL tool menu in tools based + * on node selected. if selected node is present + * in unsupported_nodes, menu will be disabled + * otherwise enabled. + */ + psqlToolEnabled: function(obj) { + + var isEnabled = (() => { + if (!_.isUndefined(obj) && !_.isNull(obj) && pgAdmin['enable_psql']) { + if (_.indexOf(pgAdmin.unsupported_nodes, obj._type) == -1) { + if (obj._type == 'database' && obj.allowConn) { + return true; + } else if (obj._type != 'database') { + return true; + } else { + return false; + } + } else { + return false; + } + } else { + return false; + } + })(); + + enable(gettext('PSQL Tool'), isEnabled); + return isEnabled; + }, + retrieveAncestorOfTypeServer: function(item) { + let serverInformation = null; + // let aciTreeItem = item || pgBrowser.treeMenu.selected(); + let treeNode = pgBrowser.treeMenu.findNodeByDomElement(item); + + if (treeNode) { + let nodeData; + let databaseNode = treeNode.ancestorNode( + (node) => { + nodeData = node.getData(); + return (nodeData._type === 'database'); + } + ); + let isServerNode = (node) => { + nodeData = node.getData(); + return nodeData._type === 'server'; + }; + + if (databaseNode !== null) { + if (nodeData._label.indexOf('=') >= 0) { + this.alertify.alert( + gettext(this.errorAlertTitle), + gettext( + 'Databases with = symbols in the name cannot be backed up or restored using this utility.' + ) + ); + } else { + if (databaseNode.anyParent(isServerNode)) + serverInformation = nodeData; + } + } else { + if (treeNode.anyFamilyMember(isServerNode)) + serverInformation = nodeData; + } + } + + if (serverInformation === null) { + this.alertify.alert( + gettext(this.errorAlertTitle), + gettext('Please select server or child node from the browser tree.') + ); + } + return serverInformation; + }, + psql_tool: function(data, aciTreeIdentifier, gen=false) { + const module = 'paths'; + let preference_name = 'pg_bin_dir'; + let msg = gettext('Please configure the PostgreSQL Binary Path in the Preferences dialog.'); + const serverInformation = this.retrieveAncestorOfTypeServer(aciTreeIdentifier); + + if ((serverInformation.type && serverInformation.type === 'ppas') || + serverInformation.server_type === 'ppas') { + preference_name = 'ppas_bin_dir'; + msg = gettext('Please configure the EDB Advanced Server Binary Path in the Preferences dialog.'); + } + const preference = pgBrowser.get_preference(module, preference_name); + if (preference) { + if (!preference.value) { + Alertify.alert(gettext('Configuration required'), msg); + return false; + } + } else { + Alertify.alert( + gettext(this.errorAlertTitle), + gettext('Failed to load preference %s of module %s', preference_name, module) + ); + return false; + } + const node = pgBrowser.treeMenu.findNodeByDomElement(aciTreeIdentifier); + if (node === undefined || !node.getData()) { + Alertify.alert( + gettext('PSQL Error'), + gettext('No object selected.') + ); + return; + } + + parentData = getTreeNodeHierarchyFromIdentifier.call( + pgBrowser, + aciTreeIdentifier + ); + + if(_.isUndefined(parentData.server)) { + Alertify.alert( + gettext('PSQL Error'), + gettext('Please select a server/database object.') + ); + return; + } + + const transId = getRandomInt(1, 9999999); + + var panelTitle = ''; + // Set psql tab title as per prefrences setting. + var title_data = { + 'database': parentData.database ? parentData.database.label : 'postgres' , + 'username': parentData.server.user_name, + 'server': parentData.server.label, + 'type': 'psql_tool', + }; + var tab_title_placeholder = pgBrowser.get_preferences_for_module('browser').psql_tab_title_placeholder; + panelTitle = generateTitle(tab_title_placeholder, title_data); + + const [panelUrl, panelCloseUrl] = this.getPanelUrls(transId, panelTitle, parentData, gen); + + let psqlToolForm = ` +

+ + + + + `; + var open_new_tab = pgBrowser.get_preferences_for_module('browser').new_browser_tab_open; + if (open_new_tab && open_new_tab.includes('psql_tool')) { + var newWin = window.open('', '_blank'); + newWin.document.write(psqlToolForm); + newWin.document.title = panelTitle; + } else { + /* On successfully initialization find the properties panel, + * create new panel and add it to the dashboard panel. + */ + var propertiesPanel = pgBrowser.docker.findPanels('properties'); + var psqlToolPanel = pgBrowser.docker.addPanel('frm_psqltool', wcDocker.DOCK.STACKED, propertiesPanel[0]); + + // Set panel title and icon + setPanelTitle(psqlToolPanel, panelTitle); + psqlToolPanel.icon('fas fa-terminal psql-tab-style'); + psqlToolPanel.focus(); + + var openPSQLToolURL = function(j) { + // add spinner element + let $spinner_el = + $(`
+
+
+
+
+
+
`).appendTo($(j).data('embeddedFrame').$container); + + let init_poller_id = setInterval(function() { + var frameInitialized = $(j).data('frameInitialized'); + if (frameInitialized) { + clearInterval(init_poller_id); + var frame = $(j).data('embeddedFrame'); + if (frame) { + frame.onLoaded(()=>{ + $spinner_el.remove(); + }); + frame.openHTML(psqlToolForm); + } + } + }, 100); + }; + + openPSQLToolURL(psqlToolPanel); + + } + + }, + getPanelUrls: function(transId, panelTitle, parentData) { + let openUrl = url_for('psql.panel', { + trans_id: transId, + }); + const misc_preferences = pgBrowser.get_preferences_for_module('misc'); + var theme = misc_preferences.theme; + + openUrl += `?sgid=${parentData.server_group._id}` + +`&sid=${parentData.server._id}` + +`&server_type=${parentData.server.server_type}` + + `&theme=${theme}`; + + if(parentData.database && parentData.database._id) { + let db_label = parentData.database._label.replace('\\', '\\\\'); + openUrl += `&db=${db_label}`; + } else { + openUrl += `&db=${''}`; + } + + let closeUrl = url_for('psql.close', { + trans_id: transId, + }); + return [openUrl, closeUrl]; + }, + psql_terminal: function() { + // theme colors + var term = new terminal({ + cursorBlink: true, + macOptionIsMeta: true, + scrollback: 5000, + }); + + return term; + }, + psql_Addon: function(term) { + const fitAddon = this.psql_fit_screen(); + term.loadAddon(fitAddon); + + const webLinksAddon = this.psql_web_link(); + term.loadAddon(webLinksAddon); + + const searchAddon = this.psql_search(); + term.loadAddon(searchAddon); + + fitAddon.fit(); + term.resize(15, 50); + fitAddon.fit(); + return fitAddon; + }, + psql_fit_screen: function() { + return new FitAddon(); + }, + psql_web_link: function() { + return new WebLinksAddon(); + }, + psql_search: function() { + return new SearchAddon(); + }, + psql_socket: function() { + return io('/pty', {pingTimeout: 120000, pingInterval: 25000}); + }, + set_theme: function(term) { + var theme = { + background: getComputedStyle(document.documentElement).getPropertyValue('--psql-background'), + foreground: getComputedStyle(document.documentElement).getPropertyValue('--psql-foreground'), + cursor: getComputedStyle(document.documentElement).getPropertyValue('--psql-cursor'), + cursorAccent: getComputedStyle(document.documentElement).getPropertyValue('--psql-cursorAccent'), + selection: getComputedStyle(document.documentElement).getPropertyValue('--psql-selection'), + }; + term.setOption('theme', theme); + }, + psql_socket_io: function(socket, is_enable, sid, db, server_type, fitAddon, term) { + // Listen all the socket events emit from server. + socket.on('pty-output', function(data){ + if(data.error) { + term.write('\r\n'); + } + term.write(data.result); + if(data.error) { + term.write('\r\n'); + } + }); + // Connect socket + socket.on('connect', () => { + if(is_enable == 'True'){ + socket.emit('start_process', {'sid': sid, 'db': db, 'stype': server_type }); + } + fitAddon.fit(); + socket.emit('resize', {'cols': term.cols, 'rows': term.rows}); + }); + + socket.on('conn_error', (response) => { + term.write(response.error); + fitAddon.fit(); + socket.emit('resize', {'cols': term.cols, 'rows': term.rows}); + }); + + socket.on('conn_not_allow', () => { + term.write('PSQL connection not allowed'); + fitAddon.fit(); + socket.emit('resize', {'cols': term.cols, 'rows': term.rows}); + }); + + socket.on('disconnect-psql', () => { + socket.emit('server-disconnect', {'sid': sid}); + term.write('\r\nServer disconnected, Connection terminated, To create new connection please open another psql tool.'); + }); + }, + psql_terminal_io: function(term, socket) { + // Listen key press event from terminal and emit socket event. + let selected_text = ''; + term.attachCustomKeyEventHandler(e => { + e.stopPropagation(); + if(e.type=='keydown' && e.metaKey &&(e.key == 'v' || e.key == 'V')) { + if(selected_text != '') { + if (selected_text.length > 0) { + socket.emit('socket_input', {'input': selected_text, 'key_name': e.code}); + selected_text = ''; + } + } else { + navigator.clipboard.readText().then( clipText => { + selected_text = clipText; + if (selected_text.length > 0) { + socket.emit('socket_input', {'input': selected_text, 'key_name': e.code}); + selected_text = ''; + } + }); + } + }else if(e.type=='keydown' && e.metaKey && (e.key == 'c' || e.key == 'C')) { + if (term.hasSelection()) { + selected_text = term.getSelection(); + } else { + selected_text = clipboard.readText(); + } + } + return true; + }); + + term.onKey(function (ev) { + if (pgAdmin['allow_psql_shell_commands']) { + socket.emit('socket_input', {'input': ev.key, 'key_name': ev.domEvent.code}); + } else { + socket.emit('socket_input', {'input': ev.key, 'key_name': ev.domEvent.code}); + } + }); + } + }; + + return pgBrowser.psql; +} + diff --git a/web/pgadmin/tools/psql/templates/editor_template.html b/web/pgadmin/tools/psql/templates/editor_template.html new file mode 100644 index 00000000..43b346b2 --- /dev/null +++ b/web/pgadmin/tools/psql/templates/editor_template.html @@ -0,0 +1,58 @@ +{% extends "base.html" %} +{% block title %}{{title}}{% endblock %} + +{% block css_link %} + +{% endblock %} +{% block body %} + +
+{% endblock %} + + +{% block init_script %} +require( + ['sources/generated/psql_tool'], + function(pgBrowser) { + const term = self.pgAdmin.Browser.psql.psql_terminal(); + + const fitAddon = self.pgAdmin.Browser.psql.psql_Addon(term); + + self.pgAdmin.Browser.psql.set_theme(term); + + term.open(document.getElementById('psql-terminal')); + + const socket = self.pgAdmin.Browser.psql.psql_socket(); + self.pgAdmin.Browser.psql.psql_socket_io(socket, '{{is_enable}}', '{{sid}}', '{{db}}', '{{server_type}}', fitAddon, term); + self.pgAdmin.Browser.psql.psql_terminal_io(term, socket); + + + function fitToscreen(){ + fitAddon.fit() + socket.emit("resize", {"cols": term.cols, "rows": term.rows}) + } + + function debounce(func, wait_ms) { + let timeout + return function(...args) { + const context = this + clearTimeout(timeout) + timeout = setTimeout(() => func.apply(context, args), wait_ms) + } + } + + const wait_ms = 50;; + window.onresize = debounce(fitToscreen, wait_ms) + }); +{% endblock %} + + diff --git a/web/pgadmin/tools/psql/tests/__init__.py b/web/pgadmin/tools/psql/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/web/pgadmin/tools/psql/tests/psql_test_data.json b/web/pgadmin/tools/psql/tests/psql_test_data.json new file mode 100644 index 00000000..4148c75b --- /dev/null +++ b/web/pgadmin/tools/psql/tests/psql_test_data.json @@ -0,0 +1,184 @@ +{ + "psql_user_input": [ + { + "name": "Enter Select 1;", + "is_positive_test": true, + "mocking_required": false, + "input_cmd": "select 1;", + "mock_data": { + + }, + "expected_data": { + } + }, + { + "name": "Enter Backspace", + "is_positive_test": true, + "mocking_required": false, + "input_cmd": "select 1;", + "is_backspace": true, + "mock_data": { + + }, + "expected_data": { + } + },{ + "name": "Enter Backspace", + "is_positive_test": true, + "mocking_required": false, + "input_cmd": "select 1;", + "is_backspace": true, + "move_cursor_up": true, + "mock_data": { + + }, + "expected_data": { + } + }, + { + "name": "Enter ArrowUp", + "is_positive_test": true, + "mocking_required": false, + "input_cmd": "select 1;", + "is_arrowUp": true, + "mock_data": { + + }, + "expected_data": { + } + }, + { + "name": "Enter ArrowUp", + "is_positive_test": true, + "mocking_required": false, + "input_cmd": "select 1;", + "is_arrowUp": true, + "is_history": true, + "mock_data": { + + }, + "expected_data": { + } + }, + { + "name": "Enter ArrowLeft", + "is_positive_test": true, + "mocking_required": false, + "input_cmd": "select 1;", + "is_arrowLeft": true, + "mock_data": { + + }, + "expected_data": { + } + }, + { + "name": "Enter ArrowRight", + "is_positive_test": true, + "mocking_required": false, + "input_cmd": "select 1;", + "is_arrowRight": true, + "mock_data": { + + }, + "expected_data": { + } + },{ + "name": "Read previous executed command", + "is_positive_test": true, + "mocking_required": false, + "input_cmd": "select 1;", + "is_arrowRight": true, + "move_cursor_right": true, + "mock_data": { + + }, + "expected_data": { + } + }, + { + "name": "Meta command \\! not allowed", + "is_positive_test": true, + "mocking_required": false, + "input_cmd": "\\!", + "mock_data": { + + }, + "expected_data": { + } + }, + { + "name": "Meta command \\! with other cmd not allowed", + "is_positive_test": true, + "mocking_required": false, + "input_cmd": "\\! ls", + "mock_data": { + + }, + "expected_data": { + } + }, + { + "name": "Valid commands", + "is_positive_test": true, + "mocking_required": false, + "input_cmd": "select \"\\!\"", + "mock_data": { + + }, + "expected_data": { + } + },{ + "name": "First command as enter", + "is_positive_test": true, + "mocking_required": false, + "input_cmd": "", + "mock_data": { + + }, + "expected_data": { + } + }, + { + "name": "Exist psql terminal by using \\q", + "is_positive_test": true, + "mocking_required": false, + "input_cmd": "\\q", + "mock_data": { + + }, + "expected_data": { + } + } + ], + "resize_terminal": [ + { + "name": "Resize psql terminal as per UI.", + "is_positive_test": true, + "mocking_required": false, + "input_data": { + "cols": 141, + "rows": 39 + }, + "mock_data": { + + }, + "expected_data": { + } + } + ], + "backend_task": [ + { + "name": "Backend Task", + "is_positive_test": true, + "mocking_required": false, + "input_cmd": "Select 1;", + "is_backend_task": true, + "mock_data": { + "is_test": true + }, + "expected_data": { + } + } + ] +} diff --git a/web/pgadmin/tools/psql/tests/test_backend_task.py b/web/pgadmin/tools/psql/tests/test_backend_task.py new file mode 100644 index 00000000..a4f14ee4 --- /dev/null +++ b/web/pgadmin/tools/psql/tests/test_backend_task.py @@ -0,0 +1,87 @@ +import uuid +import config +from pgadmin.utils.route import BaseTestGenerator +from regression.python_test_utils import test_utils as utils +from regression import parent_node_dict +from regression.test_setup import config_data +from pgadmin.utils import server_utils as server_utils +from pgAdmin4 import app +from . import utils as psql_utils +from .... import socketio + + +class PSQLBackend(BaseTestGenerator): + scenarios = utils.generate_scenarios('backend_task', + psql_utils.test_cases) + + def setUp(self): + self.db_name = "psqltestdb_{0}".format(str(uuid.uuid4())[1:8]) + database_info = parent_node_dict["database"][-1] + self.did = database_info["db_id"] + self.sid = parent_node_dict["server"][-1]["server_id"] + self.sgid = config_data["server_group"] + config.ENABLE_PSQL = True + self.server_con = server_utils.connect_server(self, self.sid) + + def runTest(self): + # Fetch flask client to access current user and other cookies. + flask_client = app.test_client() + flask_client.get('/') + self.test_client = socketio.test_client(app, namespace='/pty', + flask_test_client=flask_client) + self.assertTrue(self.test_client.is_connected('/pty')) + received = self.test_client.get_received('/pty') + + assert received[0]['name'] == 'connected' + assert received[0]['args'][0]['sid'] != '' + + data = { + 'sid': self.sid, + 'db': 'postgres', + 'pwd': self.server['db_password'], + 'user': self.server['username'], + 'is_test': True, + 'count': 0 + } + + self.test_client.emit('start_process', data, namespace='/pty') + self.test_client.get_received('/pty') + + for p in self.server['db_password']: + input_data = { + 'input': p, + 'key_name': 'Key{0}'.format(p) + } + self.test_client.emit('socket_input', input_data, namespace='/pty') + self.test_client.get_received('/pty') + + input_data = { + 'input': '\\n', + 'key_name': 'Enter' + } + self.test_client.emit('socket_input', input_data, namespace='/pty') + self.test_client.get_received('/pty') + + for ip in self.input_cmd: + input_data = { + 'input': ip, + 'key_name': 'Key{0}'.format(ip) + } + self.test_client.emit('socket_input', input_data, namespace='/pty') + self.test_client.get_received('/pty') + + input_data = { + 'input': '\\n', + 'key_name': 'Enter' + } + self.test_client.emit('socket_input', input_data, namespace='/pty') + self.test_client.get_received('/pty') + self.test_client.disconnect(namespace='/pty') + + def tearDown(self): + connection = utils.get_db_connection(self.server['db'], + self.server['username'], + self.server['db_password'], + self.server['host'], + self.server['port']) + utils.drop_database(connection, self.db_name) diff --git a/web/pgadmin/tools/psql/tests/test_panel.py b/web/pgadmin/tools/psql/tests/test_panel.py new file mode 100644 index 00000000..6f93c8c2 --- /dev/null +++ b/web/pgadmin/tools/psql/tests/test_panel.py @@ -0,0 +1,36 @@ +import uuid +import random +from pgadmin.utils.route import BaseTestGenerator +from regression.python_test_utils import test_utils as utils +from regression import parent_node_dict +from regression.test_setup import config_data + + +class PSQLPanel(BaseTestGenerator): + + def setUp(self): + self.db_name = "psqltestdb_{0}".format(str(uuid.uuid4())[1:8]) + self.sid = parent_node_dict["server"][-1]["server_id"] + self.did = utils.create_database(self.server, self.db_name) + self.sgid = config_data["server_group"] + self.theme = 'standard' + + def runTest(self): + trans_id = random.randint(1, 9999999) + url = '/psql/panel/{trans_id}?sgid={sgid}&sid={sid}&server_type=pg' \ + '&db={db_name}&theme={theme}'.\ + format(trans_id=trans_id, sgid=self.sgid, sid=self.sid, + db_name=self.db_name, theme=self.theme) + + response = self.tester.post( + url, data={"title": "panel_title"}, + content_type="application/x-www-form-urlencoded") + self.assertEqual(response.status_code, 200) + + def tearDown(self): + connection = utils.get_db_connection(self.server['db'], + self.server['username'], + self.server['db_password'], + self.server['host'], + self.server['port']) + utils.drop_database(connection, self.db_name) diff --git a/web/pgadmin/tools/psql/tests/test_psql_disabled.py b/web/pgadmin/tools/psql/tests/test_psql_disabled.py new file mode 100644 index 00000000..7dc52498 --- /dev/null +++ b/web/pgadmin/tools/psql/tests/test_psql_disabled.py @@ -0,0 +1,34 @@ +import uuid +import config +from pgadmin.utils.route import BaseTestGenerator +from regression.python_test_utils import test_utils as utils +from regression import parent_node_dict +from regression.test_setup import config_data +from pgAdmin4 import app +from .... import socketio + + +class PSQLSocketDisabled(BaseTestGenerator): + def setUp(self): + self.db_name = "psqltestdb_{0}".format(str(uuid.uuid4())[1:8]) + self.sid = parent_node_dict["server"][-1]["server_id"] + self.did = utils.create_database(self.server, self.db_name) + self.sgid = config_data["server_group"] + config.ENABLE_PSQL = False + + def runTest(self): + self.test_client = socketio.test_client(app, namespace='/pty') + self.assertTrue(self.test_client.is_connected('/pty')) + received = self.test_client.get_received('/pty') + + assert received[0]['name'] == 'conn_not_allow' + self.test_client.disconnect(namespace='/pty') + self.assertFalse(self.test_client.is_connected('/pty')) + + def tearDown(self): + connection = utils.get_db_connection(self.server['db'], + self.server['username'], + self.server['db_password'], + self.server['host'], + self.server['port']) + utils.drop_database(connection, self.db_name) diff --git a/web/pgadmin/tools/psql/tests/test_psql_input.py b/web/pgadmin/tools/psql/tests/test_psql_input.py new file mode 100644 index 00000000..6f6eabe7 --- /dev/null +++ b/web/pgadmin/tools/psql/tests/test_psql_input.py @@ -0,0 +1,148 @@ +import uuid +import config +from pgadmin.utils.route import BaseTestGenerator +from regression.python_test_utils import test_utils as utils +from regression import parent_node_dict +from regression.test_setup import config_data +from pgadmin.utils import server_utils as server_utils +from pgAdmin4 import app +from . import utils as psql_utils +from .... import socketio + + +class PSQLInput(BaseTestGenerator): + scenarios = utils.generate_scenarios('psql_user_input', + psql_utils.test_cases) + + def setUp(self): + self.db_name = "psqltestdb_{0}".format(str(uuid.uuid4())[1:8]) + database_info = parent_node_dict["database"][-1] + self.did = database_info["db_id"] + self.sid = parent_node_dict["server"][-1]["server_id"] + self.sgid = config_data["server_group"] + config.ENABLE_PSQL = True + self.server_con = server_utils.connect_server(self, self.sid) + + def runTest(self): + # Fetch flask client to access current user and other cookies. + flask_client = app.test_client() + flask_client.get('/') + self.test_client = socketio.test_client(app, namespace='/pty', + flask_test_client=flask_client) + self.assertTrue(self.test_client.is_connected('/pty')) + received = self.test_client.get_received('/pty') + + assert received[0]['name'] == 'connected' + assert received[0]['args'][0]['sid'] != '' + + data = { + 'sid': self.sid, + 'db': 'postgres', + 'pwd': self.server['db_password'], + 'user': self.server['username'] + } + + self.test_client.emit('start_process', data, namespace='/pty') + self.test_client.get_received('/pty') + + input_data = { + 'input': '\\n', + 'key_name': 'Enter' + } + self.test_client.emit('socket_input', input_data, namespace='/pty') + self.test_client.get_received('/pty') + + for ip in self.input_cmd: + input_data = { + 'input': ip, + 'key_name': 'Key{0}'.format(ip) + } + self.test_client.emit('socket_input', input_data, namespace='/pty') + self.test_client.get_received('/pty') + + if hasattr(self, 'is_backspace') and self.is_backspace: + if hasattr(self, 'move_cursor_up') and self.move_cursor_up: + input_data = { + 'input': '', + 'key_name': 'ArrowUp' + } + self.test_client.emit('socket_input', input_data, + namespace='/pty') + + for ip in self.input_cmd: + input_data = { + 'input': ip, + 'key_name': 'Backspace' + } + self.test_client.emit('socket_input', input_data, + namespace='/pty') + self.test_client.get_received('/pty') + + if hasattr(self, 'is_arrowUp') and self.is_arrowUp: + if hasattr(self, 'is_history') and self.is_history: + for ip in self.input_cmd: + input_data = { + 'input': ip, + 'key_name': 'Key{0}'.format(ip) + } + self.test_client.emit('socket_input', input_data, + namespace='/pty') + self.test_client.get_received('/pty') + + input_data = { + 'input': '', + 'key_name': 'ArrowUp' + } + self.test_client.emit('socket_input', input_data, + namespace='/pty') + self.test_client.get_received('/pty') + + if hasattr(self, 'is_arrowLeft') and self.is_arrowLeft: + for ip in self.input_cmd: + input_data = { + 'input': ip, + 'key_name': 'ArrowLeft' + } + self.test_client.emit('socket_input', input_data, + namespace='/pty') + self.test_client.get_received('/pty') + + if hasattr(self, 'is_arrowRight') and self.is_arrowRight: + for ip in self.input_cmd: + input_data = { + 'input': ip, + 'key_name': 'ArrowRight' + } + self.test_client.emit('socket_input', input_data, + namespace='/pty') + self.test_client.get_received('/pty') + + if hasattr(self, 'move_cursor_right') and self.is_arrowRight: + for i in range(2): + input_data = { + 'input': '', + 'key_name': 'ArrowLeft' + } + self.test_client.emit('socket_input', input_data, + namespace='/pty') + input_data = { + 'input': '', + 'key_name': 'ArrowRight' + } + self.test_client.emit('socket_input', input_data, + namespace='/pty') + + input_data = { + 'input': '\\n', + 'key_name': 'Enter' + } + self.test_client.emit('socket_input', input_data, namespace='/pty') + self.test_client.get_received('/pty') + + def tearDown(self): + connection = utils.get_db_connection(self.server['db'], + self.server['username'], + self.server['db_password'], + self.server['host'], + self.server['port']) + utils.drop_database(connection, self.db_name) diff --git a/web/pgadmin/tools/psql/tests/test_resize_terminal.py b/web/pgadmin/tools/psql/tests/test_resize_terminal.py new file mode 100644 index 00000000..d305c2d0 --- /dev/null +++ b/web/pgadmin/tools/psql/tests/test_resize_terminal.py @@ -0,0 +1,58 @@ +import uuid +import config +from pgadmin.utils.route import BaseTestGenerator +from regression.python_test_utils import test_utils as utils +from regression import parent_node_dict +from regression.test_setup import config_data +from pgadmin.utils import server_utils as server_utils +from pgAdmin4 import app +from . import utils as psql_utils +from .... import socketio + + +class PSQLResizeTerminal(BaseTestGenerator): + scenarios = utils.generate_scenarios('resize_terminal', + psql_utils.test_cases) + + def setUp(self): + self.db_name = "psqltestdb_{0}".format(str(uuid.uuid4())[1:8]) + database_info = parent_node_dict["database"][-1] + self.did = database_info["db_id"] + self.sid = parent_node_dict["server"][-1]["server_id"] + self.sgid = config_data["server_group"] + config.ENABLE_PSQL = True + self.server_con = server_utils.connect_server(self, self.sid) + + def runTest(self): + # Fetch flask client to access current user and other cookies. + flask_client = app.test_client() + flask_client.get('/') + self.test_client = socketio.test_client(app, namespace='/pty', + flask_test_client=flask_client) + self.assertTrue(self.test_client.is_connected('/pty')) + received = self.test_client.get_received('/pty') + + assert received[0]['name'] == 'connected' + assert received[0]['args'][0]['sid'] != '' + + data = { + 'sid': self.sid, + 'db': 'postgres', + 'pwd': self.server['db_password'], + 'user': self.server['username'] + } + + self.test_client.emit('start_process', data, namespace='/pty') + self.test_client.get_received('/pty') + + self.test_client.emit('resize', self.input_data, namespace='/pty') + + self.test_client.disconnect(namespace='/pty') + + def tearDown(self): + connection = utils.get_db_connection(self.server['db'], + self.server['username'], + self.server['db_password'], + self.server['host'], + self.server['port']) + utils.drop_database(connection, self.db_name) diff --git a/web/pgadmin/tools/psql/tests/test_socket_connect.py b/web/pgadmin/tools/psql/tests/test_socket_connect.py new file mode 100644 index 00000000..3791525a --- /dev/null +++ b/web/pgadmin/tools/psql/tests/test_socket_connect.py @@ -0,0 +1,35 @@ +import uuid +import config +from pgadmin.utils.route import BaseTestGenerator +from regression.python_test_utils import test_utils as utils +from regression import parent_node_dict +from regression.test_setup import config_data +from pgAdmin4 import app +from .... import socketio + + +class PSQLSocketConnect(BaseTestGenerator): + def setUp(self): + self.db_name = "psqltestdb_{0}".format(str(uuid.uuid4())[1:8]) + self.sid = parent_node_dict["server"][-1]["server_id"] + self.did = utils.create_database(self.server, self.db_name) + self.sgid = config_data["server_group"] + config.ENABLE_PSQL = True + + def runTest(self): + self.test_client = socketio.test_client(app, namespace='/pty') + self.assertTrue(self.test_client.is_connected('/pty')) + received = self.test_client.get_received('/pty') + + assert received[0]['name'] == 'connected' + assert received[0]['args'][0]['sid'] != '' + self.test_client.disconnect(namespace='/pty') + self.assertFalse(self.test_client.is_connected('/pty')) + + def tearDown(self): + connection = utils.get_db_connection(self.server['db'], + self.server['username'], + self.server['db_password'], + self.server['host'], + self.server['port']) + utils.drop_database(connection, self.db_name) diff --git a/web/pgadmin/tools/psql/tests/test_socket_disconnect.py b/web/pgadmin/tools/psql/tests/test_socket_disconnect.py new file mode 100644 index 00000000..0619eb30 --- /dev/null +++ b/web/pgadmin/tools/psql/tests/test_socket_disconnect.py @@ -0,0 +1,52 @@ +import uuid +import config +from pgadmin.utils.route import BaseTestGenerator +from regression.python_test_utils import test_utils as utils +from regression import parent_node_dict +from regression.test_setup import config_data +from pgAdmin4 import app +from .... import socketio + + +class PSQLSocketDisconnect(BaseTestGenerator): + def setUp(self): + self.db_name = "psqltestdb_{0}".format(str(uuid.uuid4())[1:8]) + self.sid = parent_node_dict["server"][-1]["server_id"] + self.did = utils.create_database(self.server, self.db_name) + self.sgid = config_data["server_group"] + config.ENABLE_PSQL = True + + def runTest(self): + # Fetch flask client to access current user and other cookies. + flask_test_client = app.test_client() + flask_test_client.get('/') + + self.test_client = socketio.test_client( + app, + flask_test_client=flask_test_client, + namespace='/pty') + self.assertTrue(self.test_client.is_connected('/pty')) + received = self.test_client.get_received('/pty') + + assert received[0]['name'] == 'connected' + assert received[0]['args'][0]['sid'] != '' + + data = { + 'sid': self.sid, + 'db': 'postgres', + 'pwd': self.server['db_password'], + 'user': self.server['username'] + } + + self.test_client.emit('start_process', data, namespace='/pty') + self.test_client.get_received('/pty') + + self.test_client.disconnect(namespace='/pty') + + def tearDown(self): + connection = utils.get_db_connection(self.server['db'], + self.server['username'], + self.server['db_password'], + self.server['host'], + self.server['port']) + utils.drop_database(connection, self.db_name) diff --git a/web/pgadmin/tools/psql/tests/test_start_process.py b/web/pgadmin/tools/psql/tests/test_start_process.py new file mode 100644 index 00000000..1245de3f --- /dev/null +++ b/web/pgadmin/tools/psql/tests/test_start_process.py @@ -0,0 +1,57 @@ +import uuid +import config +from pgadmin.utils.route import BaseTestGenerator +from regression.python_test_utils import test_utils as utils +from regression import parent_node_dict +from regression.test_setup import config_data +from pgadmin.utils import server_utils as server_utils +from pgAdmin4 import app +from .... import socketio + + +class PSQLStartProcess(BaseTestGenerator): + def setUp(self): + self.db_name = "psqltestdb_{0}".format(str(uuid.uuid4())[1:8]) + database_info = parent_node_dict["database"][-1] + self.did = database_info["db_id"] + self.sid = parent_node_dict["server"][-1]["server_id"] + self.sgid = config_data["server_group"] + config.ENABLE_PSQL = True + + self.server_con = server_utils.connect_server(self, self.sid) + + def runTest(self): + # Fetch flask client to access current user and other cookies. + flask_client = app.test_client() + flask_client.get('/') + self.test_client = socketio.test_client(app, namespace='/pty', + flask_test_client=flask_client) + self.assertTrue(self.test_client.is_connected('/pty')) + received = self.test_client.get_received('/pty') + + assert received[0]['name'] == 'connected' + assert received[0]['args'][0]['sid'] != '' + + import random + trans_id = random.randint(1, 9999999) + + data = { + 'sid': self.sid, + 'db': 'postgres', + 'pwd': self.server['db_password'], + 'user': self.server['username'] + } + + self.test_client.emit('start_process', data, namespace='/pty') + self.test_client.get_received('/pty') + + self.test_client.disconnect(namespace='/pty') + self.assertFalse(self.test_client.is_connected('/pty')) + + def tearDown(self): + connection = utils.get_db_connection(self.server['db'], + self.server['username'], + self.server['db_password'], + self.server['host'], + self.server['port']) + utils.drop_database(connection, self.db_name) diff --git a/web/pgadmin/tools/psql/tests/test_start_process_fail.py b/web/pgadmin/tools/psql/tests/test_start_process_fail.py new file mode 100644 index 00000000..0acc7be2 --- /dev/null +++ b/web/pgadmin/tools/psql/tests/test_start_process_fail.py @@ -0,0 +1,48 @@ +import uuid +import config +from pgadmin.utils.route import BaseTestGenerator +from regression.python_test_utils import test_utils as utils +from regression import parent_node_dict +from regression.test_setup import config_data +from pgAdmin4 import app +from .... import socketio + + +class PSQLStartProcessFail(BaseTestGenerator): + def setUp(self): + self.db_name = "psqltestdb_{0}".format(str(uuid.uuid4())[1:8]) + self.sid = parent_node_dict["server"][-1]["server_id"] + self.did = utils.create_database(self.server, self.db_name) + self.sgid = config_data["server_group"] + config.ENABLE_PSQL = True + + def runTest(self): + self.test_client = socketio.test_client(app, namespace='/pty') + self.assertTrue(self.test_client.is_connected('/pty')) + received = self.test_client.get_received('/pty') + + assert received[0]['name'] == 'connected' + assert received[0]['args'][0]['sid'] != '' + + data = { + 'sid': self.sid, + 'db': 'postgres', + 'pwd': self.server['db_password'], + 'user': self.server['username'] + } + config.ENABLE_PSQL = False + self.test_client.emit('start_process', data, namespace='/pty') + received = self.test_client.get_received('/pty') + + assert received[0]['name'] == 'conn_not_allow' + + self.test_client.disconnect(namespace='/pty') + self.assertFalse(self.test_client.is_connected('/pty')) + + def tearDown(self): + connection = utils.get_db_connection(self.server['db'], + self.server['username'], + self.server['db_password'], + self.server['host'], + self.server['port']) + utils.drop_database(connection, self.db_name) diff --git a/web/pgadmin/tools/psql/tests/utils.py b/web/pgadmin/tools/psql/tests/utils.py new file mode 100644 index 00000000..85bd5373 --- /dev/null +++ b/web/pgadmin/tools/psql/tests/utils.py @@ -0,0 +1,6 @@ +import os +import json + +CURRENT_PATH = os.path.dirname(os.path.realpath(__file__)) +with open(CURRENT_PATH + "/psql_test_data.json") as data_file: + test_cases = json.load(data_file) diff --git a/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss b/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss index 0bb40802..a58eb7e9 100644 --- a/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss +++ b/web/pgadmin/tools/sqleditor/static/scss/_sqleditor.scss @@ -374,3 +374,20 @@ div.strikeout:after { /* Setting it to hardcoded white as the SVG generated is having white bg * Need to check what can be done. */ + +/* Css for psql */ +.psql_terminal .terminal { + padding-top: 1%; + padding-left: 0.5%; + height: 100%; +} + +.psql-icon-style { + font-size: inherit; + padding-left: 0em; +} + +.psql-tab-style { + font-size: small; + padding-left: 0em; +} diff --git a/web/pgadmin/utils/csrf.py b/web/pgadmin/utils/csrf.py index 23abfffa..71ae82ea 100644 --- a/web/pgadmin/utils/csrf.py +++ b/web/pgadmin/utils/csrf.py @@ -38,6 +38,7 @@ class _PGCSRFProtect(CSRFProtect): 'pgadmin.tools.schema_diff.ddl_compare', 'pgadmin.authenticate.login', 'pgadmin.tools.erd.panel', + 'pgadmin.tools.psql.panel', ] for exempt in exempt_views: diff --git a/web/pgadmin/utils/preferences.py b/web/pgadmin/utils/preferences.py index 15ceeb1a..e9efe479 100644 --- a/web/pgadmin/utils/preferences.py +++ b/web/pgadmin/utils/preferences.py @@ -72,6 +72,7 @@ class _Preference(object): self.select2 = kwargs.get('select2', None) self.fields = kwargs.get('fields', None) self.allow_blanks = kwargs.get('allow_blanks', None) + self.disabled = kwargs.get('disabled', False) # Look into the configuration table to find out the id of the specific # preference. @@ -252,6 +253,7 @@ class _Preference(object): 'select2': self.select2, 'value': self.get(), 'fields': self.fields, + 'disabled': self.disabled, } return res @@ -414,6 +416,7 @@ class Preferences(object): :param fields: field schema (if preference has more than one field to take input from user e.g. keyboardshortcut preference) :param allow_blanks: Flag specify whether to allow blank value. + :param disabled: Flag specify whether to disable the setting or not. """ min_val = kwargs.get('min_val', None) max_val = kwargs.get('max_val', None) @@ -423,6 +426,7 @@ class Preferences(object): select2 = kwargs.get('select2', None) fields = kwargs.get('fields', None) allow_blanks = kwargs.get('allow_blanks', None) + disabled = kwargs.get('disabled', False) cat = self.__category(category, category_label) if name in cat['preferences']: @@ -439,7 +443,8 @@ class Preferences(object): (cat['preferences'])[name] = res = _Preference( cat['id'], name, label, _type, default, help_str=help_str, min_val=min_val, max_val=max_val, options=options, - select2=select2, fields=fields, allow_blanks=allow_blanks + select2=select2, fields=fields, allow_blanks=allow_blanks, + disabled=disabled ) return res diff --git a/web/webpack.config.js b/web/webpack.config.js index 779f2faa..f631178b 100644 --- a/web/webpack.config.js +++ b/web/webpack.config.js @@ -355,6 +355,7 @@ module.exports = [{ debugger_direct: './pgadmin/tools/debugger/static/js/direct.js', schema_diff: './pgadmin/tools/schema_diff/static/js/schema_diff_hook.js', erd_tool: './pgadmin/tools/erd/static/js/erd_tool_hook.js', + psql_tool: './pgadmin/tools/psql/static/js/index.js', file_utils: './pgadmin/misc/file_manager/static/js/utility.js', 'pgadmin.style': pgadminCssStyles, pgadmin: pgadminScssStyles, @@ -493,7 +494,7 @@ module.exports = [{ ], }, }, - }, { + },{ test: require.resolve('./node_modules/acitree/js/jquery.aciTree.min'), use: { loader: 'imports-loader', @@ -532,6 +533,7 @@ module.exports = [{ 'pure|pgadmin.tools.storage_manager', 'pure|pgadmin.tools.search_objects', 'pure|pgadmin.tools.erd_module', + 'pure|pgadmin.tools.psql_module', ], }, }, diff --git a/web/webpack.shim.js b/web/webpack.shim.js index 074b2580..e0b28091 100644 --- a/web/webpack.shim.js +++ b/web/webpack.shim.js @@ -159,6 +159,15 @@ var webpackShimConfig = { 'jquery.acisortable': path.join(__dirname, './node_modules/acitree/js/jquery.aciSortable.min'), 'jquery.acifragment': path.join(__dirname, './node_modules/acitree/js/jquery.aciFragment.min'), + //xterm + 'xterm': path.join(__dirname, './node_modules/xterm/lib/xterm.js'), + 'xterm-addon-fit': path.join(__dirname, './node_modules/xterm-addon-fit/lib/xterm-addon-fit.js'), + 'xterm-addon-web-links': path.join(__dirname, './node_modules/xterm-addon-web-links/lib/xterm-addon-web-links.js'), + 'xterm-addon-search': path.join(__dirname, './node_modules/xterm-addon-search/lib/xterm-addon-search.js'), + + //socket + 'socketio': path.join(__dirname, './node_modules/socket.io-client/dist/socket.io.js'), + // Backbone and Backgrid 'backbone': path.join(__dirname, './node_modules/backbone/backbone'), 'backbone.undo': path.join(__dirname, './node_modules/backbone-undo/Backbone.Undo'), @@ -288,6 +297,8 @@ var webpackShimConfig = { 'pgadmin.tools.storage_manager': path.join(__dirname, './pgadmin/tools/storage_manager/static/js/storage_manager'), 'pgadmin.tools.erd_module': path.join(__dirname, './pgadmin/tools/erd/static/js/erd_module'), 'pgadmin.tools.erd': path.join(__dirname, './pgadmin/tools/erd/static/js'), + 'pgadmin.tools.psql_module': path.join(__dirname, './pgadmin/tools/psql/static/js/psql_module'), + 'pgadmin.tools.psql': path.join(__dirname, './pgadmin/tools/psql/static/js'), 'pgadmin.search_objects': path.join(__dirname, './pgadmin/tools/search_objects/static/js'), 'pgadmin.tools.user_management': path.join(__dirname, './pgadmin/tools/user_management/static/js/user_management'), 'pgadmin.user_management.current_user': '/user_management/current_user', diff --git a/web/webpack.test.config.js b/web/webpack.test.config.js index e0b6fd69..3cc079f9 100644 --- a/web/webpack.test.config.js +++ b/web/webpack.test.config.js @@ -177,6 +177,7 @@ module.exports = { 'pgadmin.browser.preferences': path.join(__dirname, './pgadmin/browser/static/js/preferences'), 'pgadmin.browser.activity': path.join(__dirname, './pgadmin/browser/static/js/activity'), 'pgadmin.tools.erd': path.join(__dirname, './pgadmin/tools/erd/static/js'), + 'pgadmin.tools.psql': path.join(__dirname, './pgadmin/tools/psql/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',