From 7bae1eb6635f9a0cc35954930f93ed57685df9de Mon Sep 17 00:00:00 2001 From: Rohit Bhati Date: Mon, 3 Mar 2025 18:45:21 +0530 Subject: [PATCH] Added support for creating Directory nodes in EPAS. #8034 --- docs/en_US/directory_dialog.rst | 87 +++ docs/en_US/images/directory_definition.png | Bin 0 -> 38070 bytes docs/en_US/images/directory_general.png | Bin 0 -> 42451 bytes docs/en_US/images/directory_security.png | Bin 0 -> 63933 bytes docs/en_US/images/directory_sql.png | Bin 0 -> 80952 bytes docs/en_US/managing_cluster_objects.rst | 3 +- docs/en_US/resource_group_dialog.rst | 2 +- .../browser/server_groups/servers/__init__.py | 3 + .../schemas/tables/tests/table_test_data.json | 40 +- .../servers/directories/__init__.py | 587 ++++++++++++++++++ .../directories/static/img/coll-directory.svg | 1 + .../directories/static/img/directory.svg | 1 + .../directories/static/js/directory.js | 100 +++ .../directories/static/js/directory.ui.js | 86 +++ .../templates/directories/sql/default/acl.sql | 32 + .../directories/sql/default/alter.sql | 22 + .../directories/sql/default/create.sql | 4 + .../directories/sql/default/delete.sql | 2 + .../directories/sql/default/nodes.sql | 12 + .../directories/sql/default/properties.sql | 13 + .../directories/sql/default/update.sql | 37 ++ .../servers/directories/tests/__init__.py | 15 + .../ppas/default/alter_directory_owner.msql | 1 + .../ppas/default/alter_directory_owner.sql | 8 + .../tests/ppas/default/create_directory.msql | 4 + .../tests/ppas/default/create_directory.sql | 8 + .../directories/tests/ppas/default/test.json | 36 ++ .../directories/tests/test_directories_add.py | 63 ++ .../tests/test_directories_delete.py | 65 ++ .../tests/test_directories_delete_multiple.py | 96 +++ .../directories/tests/test_directories_get.py | 65 ++ .../directories/tests/test_directories_put.py | 81 +++ .../servers/directories/tests/utils.py | 122 ++++ .../tests/test_resource_groups_add.py | 2 +- .../tests/test_resource_groups_delete.py | 2 +- .../test_resource_groups_delete_multiple.py | 2 +- .../tests/test_resource_groups_put.py | 2 +- .../tests/tests_resource_groups_get.py | 2 +- .../servers/roles/tests/role_test_data.json | 4 +- .../browser/server_groups/servers/utils.py | 2 + .../browser/templates/browser/js/utils.js | 2 +- .../static/js/components/Privilege.jsx | 2 + web/regression/__init__.py | 6 +- .../schema_ui_files/directory.ui.spec.js | 49 ++ web/webpack.config.js | 1 + web/webpack.shim.js | 1 + 46 files changed, 1641 insertions(+), 32 deletions(-) create mode 100644 docs/en_US/directory_dialog.rst create mode 100644 docs/en_US/images/directory_definition.png create mode 100644 docs/en_US/images/directory_general.png create mode 100644 docs/en_US/images/directory_security.png create mode 100644 docs/en_US/images/directory_sql.png create mode 100644 web/pgadmin/browser/server_groups/servers/directories/__init__.py create mode 100644 web/pgadmin/browser/server_groups/servers/directories/static/img/coll-directory.svg create mode 100644 web/pgadmin/browser/server_groups/servers/directories/static/img/directory.svg create mode 100644 web/pgadmin/browser/server_groups/servers/directories/static/js/directory.js create mode 100644 web/pgadmin/browser/server_groups/servers/directories/static/js/directory.ui.js create mode 100644 web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/acl.sql create mode 100644 web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/alter.sql create mode 100644 web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/create.sql create mode 100644 web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/delete.sql create mode 100644 web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/nodes.sql create mode 100644 web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/properties.sql create mode 100644 web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/update.sql create mode 100644 web/pgadmin/browser/server_groups/servers/directories/tests/__init__.py create mode 100644 web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/alter_directory_owner.msql create mode 100644 web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/alter_directory_owner.sql create mode 100644 web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/create_directory.msql create mode 100644 web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/create_directory.sql create mode 100644 web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/test.json create mode 100644 web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_add.py create mode 100644 web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_delete.py create mode 100644 web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_delete_multiple.py create mode 100644 web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_get.py create mode 100644 web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_put.py create mode 100644 web/pgadmin/browser/server_groups/servers/directories/tests/utils.py create mode 100644 web/regression/javascript/schema_ui_files/directory.ui.spec.js diff --git a/docs/en_US/directory_dialog.rst b/docs/en_US/directory_dialog.rst new file mode 100644 index 000000000..f93b49a3d --- /dev/null +++ b/docs/en_US/directory_dialog.rst @@ -0,0 +1,87 @@ +.. _directory_dialog: + +************************* +`Directory Dialog`:index: +************************* + +Use the Directory dialog to Create an alias for a file system directory path. +To create directories, you must have the CREATE ANY DIRECTORY system privilege. +When you create a directory, you are automatically granted READ and WRITE privileges +on the directory, and you can grant READ and WRITE privileges to other users and roles. +The superuser can also grant these privileges to other users and roles. + +Please note that directories are supported when connected to EDB Postgres Advanced Server. +For more information about using directories, please see the EDB Postgres Advanced Server Guide, available at: + + https://www.enterprisedb.com/docs/epas/latest/epas_compat_sql/ + + +The *Directory* dialog organizes the definition of a directory through the +following tabs: *General*, *Definition*, *Security*, and *SQL*. +The *SQL* tab displays the SQL code generated by dialog selections. + +.. image:: images/directory_general.png + :alt: Directory general tab + :align: center + +Use the fields on the *General* tab to specify directory attributes: + +* Use the *Name* field to add a directory alias name. This name will be displayed in the object explorer. +* Select the owner of the directory from the drop-down listbox in the *Owner* + field. + +Click the *Definition* tab to continue. + +.. image:: images/directory_definition.png + :alt: Directory dialog definition tab + :align: center + +* Use the *Location* field to specify a fully qualified directory path represented + by the alias name. The CREATE DIRECTORY command doesn't create the operating system directory. + The physical directory must be created independently using operating system commands. + +Click the *Security* tab to continue. + +.. image:: images/directory_security.png + :alt: Directory dialog security tab + :align: center + +NOTE:- This *Security* tab will be only available for EPAS 17. + +Use the *Security* tab to assign privileges for the directory. + +Use the *Privileges* panel to assign security privileges. Click the *Add* icon +(+) to assign a set of privileges: + +* Select the name of the role from the drop-down listbox in the *Grantee* field. +* The current user, who is the default grantor for granting the privilege, is displayed in the *Grantor* field. +* Click inside the *Privileges* field. Check the boxes to the left of one or + more privileges to grant the selected privileges to the specified user. + +Click the *Add* icon to assign additional sets of privileges; to discard a +privilege, click the trash icon to the left of the row and confirm deletion in +the *Delete Row* popup. + +Click the *SQL* tab to continue. + +Your entries in the *Directory* dialog generate a SQL command (see an example +below). Use the *SQL* tab for review; revisit or switch tabs to make any changes +to the SQL command. + +Example +******* + +The following is an example of the sql command generated by user selections in +the *Directory* dialog: + +.. image:: images/directory_sql.png + :alt: Directory dialog sql tab + :align: center + +The example shown demonstrates creating a directory named *test1*. It has a +*location* value equal to */home/test_dir*. + +* Click the *Info* button (i) to access online help. +* Click the *Save* button to save work. +* Click the *Close* button to exit without saving work. +* Click the *Reset* button to restore configuration parameters. diff --git a/docs/en_US/images/directory_definition.png b/docs/en_US/images/directory_definition.png new file mode 100644 index 0000000000000000000000000000000000000000..9fe629deea375ab6dada4c806491fc5a7f8d694a GIT binary patch literal 38070 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

A5PSt29z>q!PlpWJ~HNk75(Ov2b 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ξnKqmNDuD4=*iIl%pk4i9@G4%QJg6bs10 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 UUS!vL$N&HU07*qoM6N<$g6!!(sQ>@~ literal 0 HcmV?d00001 diff --git a/docs/en_US/images/directory_sql.png b/docs/en_US/images/directory_sql.png new file mode 100644 index 0000000000000000000000000000000000000000..ca4d0d79475337e30862c45e64321c8744b0d63b GIT binary patch literal 80952 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 \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/directories/static/img/directory.svg b/web/pgadmin/browser/server_groups/servers/directories/static/img/directory.svg new file mode 100644 index 000000000..cf50e8645 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/static/img/directory.svg @@ -0,0 +1 @@ +tablespace \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/directories/static/js/directory.js b/web/pgadmin/browser/server_groups/servers/directories/static/js/directory.js new file mode 100644 index 000000000..a213c0495 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/static/js/directory.js @@ -0,0 +1,100 @@ +///////////////////////////////////////////////////////////// +// +// pgAdmin 4 - PostgreSQL Tools +// +// Copyright (C) 2013 - 2025, The pgAdmin Development Team +// This software is released under the PostgreSQL Licence +// +////////////////////////////////////////////////////////////// + +import { getNodeListByName } from '../../../../../static/js/node_ajax'; +import { getNodePrivilegeRoleSchema } from '../../../static/js/privilege.ui'; +import DirectorySchema from './directory.ui'; + +define('pgadmin.node.directory', [ + 'sources/gettext', 'sources/url_for', + 'pgadmin.browser', 'pgadmin.browser.collection', +], function( + gettext, url_for, pgBrowser +) { + + if (!pgBrowser.Nodes['coll-directory']) { + pgBrowser.Nodes['coll-directory'] = + pgBrowser.Collection.extend({ + node: 'directory', + label: gettext('Directories'), + type: 'coll-directory', + columns: ['name', 'diruser'], + canDrop: true, + canDropCascade: false, + }); + } + if (!pgBrowser.Nodes['directory']) { + pgBrowser.Nodes['directory'] = pgBrowser.Node.extend({ + parent_type: 'server', + type: 'directory', + epasHelp: true, + dialogHelp: url_for('help.static', {'filename': 'directory_dialog.html'}), + label: gettext('Directory'), + hasSQL: true, + canDrop: true, + Init: function() { + /* Avoid multiple registration of menus */ + if (this.initialized) + return; + + this.initialized = true; + + pgBrowser.add_menus([{ + name: 'create_directory_on_server', node: 'server', module: this, + applies: ['object', 'context'], callback: 'show_obj_properties', + category: 'create', priority: 4, label: gettext('Directory...'), + data: {action: 'create', + data_disabled: gettext('This option is only available on EPAS servers.')}, + /* Function is used to check the server type and version. + * Directories only supported in EPAS 13 and above. + */ + enable: function(node, item) { + let treeData = pgBrowser.tree.getTreeNodeHierarchy(item), + server = treeData['server']; + return server.connected && node.server_type === 'ppas' && + node.version >= 130000; + }, + },{ + name: 'create_directory_on_coll', node: 'coll-directory', module: this, + applies: ['object', 'context'], callback: 'show_obj_properties', + category: 'create', priority: 4, label: gettext('Directory...'), + data: {action: 'create', + data_disabled: gettext('This option is only available on EPAS servers.')}, + },{ + name: 'create_directory', node: 'directory', module: this, + applies: ['object', 'context'], callback: 'show_obj_properties', + category: 'create', priority: 4, label: gettext('Directory...'), + data: {action: 'create', + data_disabled: gettext('This option is only available on EPAS servers.')}, + }, + ]); + }, + can_create_directory: function(node, item) { + let treeData = pgBrowser.tree.getTreeNodeHierarchy(item), + server = treeData['server']; + return server.connected && server.user.is_superuser; + }, + + getSchema: function(treeNodeInfo, itemNodeData) { + return new DirectorySchema( + (privileges)=>getNodePrivilegeRoleSchema(this, treeNodeInfo, itemNodeData, privileges), + treeNodeInfo, + { + role: ()=>getNodeListByName('role', treeNodeInfo, itemNodeData), + }, + { + diruser: pgBrowser.serverInfo[treeNodeInfo.server._id].user.name, + }, + ); + }, + }); + } + + return pgBrowser.Nodes['coll-directory']; +}); diff --git a/web/pgadmin/browser/server_groups/servers/directories/static/js/directory.ui.js b/web/pgadmin/browser/server_groups/servers/directories/static/js/directory.ui.js new file mode 100644 index 000000000..c3ee1656e --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/static/js/directory.ui.js @@ -0,0 +1,86 @@ +///////////////////////////////////////////////////////////// +// +// pgAdmin 4 - PostgreSQL Tools +// +// Copyright (C) 2013 - 2025, The pgAdmin Development Team +// This software is released under the PostgreSQL Licence +// +////////////////////////////////////////////////////////////// + +import gettext from 'sources/gettext'; +import BaseUISchema from 'sources/SchemaView/base_schema.ui'; +import { isEmptyString } from '../../../../../../static/js/validators'; + +export default class DirectorySchema extends BaseUISchema { + constructor(getPrivilegeRoleSchema, treeNodeInfo, fieldOptions={}, initValues={}) { + super({ + name: undefined, + owner: undefined, + path: undefined, + diracl: [], + ...initValues, + }); + this.getPrivilegeRoleSchema = getPrivilegeRoleSchema; + this.fieldOptions = { + role: [], + ...fieldOptions, + }; + this.treeNodeInfo = treeNodeInfo; + } + + get idAttribute() { + return 'oid'; + } + + get baseFields() { + let obj = this; + let fields = [ + { + id: 'name', label: gettext('Name'), cell: 'text', + type: 'text', mode: ['properties', 'create', 'edit'], + noEmpty: true, editable: false, + readonly: function(state) {return !obj.isNew(state); } + }, { + id: 'oid', label: gettext('OID'), cell: 'text', + type: 'text', mode: ['properties'], + }, { + id: 'diruser', label: gettext('Owner'), cell: 'text', + editable: false, type: 'select', options: this.fieldOptions.role, + controlProps: { allowClear: false }, isCollectionProperty: true + },{ + id: 'path', label: gettext('Location'), + noEmpty: true, editable: false, + group: gettext('Definition'), type: 'text', + mode: ['properties', 'edit','create'], + readonly: function(state) {return !obj.isNew(state); }, + }, + ]; + // Check server version before adding version-specific security fields + if (this.treeNodeInfo?.server?.version >= 170000) { + fields.push({ + id: 'diracl', label: gettext('Privileges'), type: 'collection', + group: gettext('Security'), + schema: this.getPrivilegeRoleSchema(['R','W']), + mode: ['edit', 'create'], uniqueCol : ['grantee'], + canAdd: true, canDelete: true, + }, + { + id: 'acl', label: gettext('Privileges'), type: 'text', + group: gettext('Security'), mode: ['properties'], + }, + ); + } + return fields; + } + + validate(state, setError) { + let errmsg = null; + + if (this.isNew() && isEmptyString(state.path)) { + errmsg = gettext('\'Location\' cannot be empty.'); + setError('path', errmsg); + return true; + } + return false; + } +} diff --git a/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/acl.sql b/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/acl.sql new file mode 100644 index 000000000..e55694d11 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/acl.sql @@ -0,0 +1,32 @@ +{### SQL to fetch privileges for directories ###} +SELECT 'diracl' AS deftype, + COALESCE(grantee.rolname, 'PUBLIC') AS grantee, + grantor.rolname AS grantor, + ARRAY_AGG(privilege_type) AS privileges, + ARRAY_AGG(is_grantable) AS grantable +FROM ( + SELECT + acl.grantee, acl.grantor, acl.is_grantable, + CASE acl.privilege_type + WHEN 'SELECT' THEN 'R' + WHEN 'UPDATE' THEN 'W' + ELSE 'UNKNOWN' + END AS privilege_type + FROM ( + SELECT (d).grantee AS grantee, + (d).grantor AS grantor, + (d).is_grantable AS is_grantable, + (d).privilege_type AS privilege_type + FROM ( + SELECT pg_catalog.aclexplode(ed.diracl) AS d + FROM pg_catalog.edb_dir ed + {% if dr_id %} + WHERE ed.oid = {{ dr_id|qtLiteral(conn) }}::OID + {% endif %} + ) acl_exploded + ) acl +) acl_final +LEFT JOIN pg_catalog.pg_roles grantor ON (acl_final.grantor = grantor.oid) +LEFT JOIN pg_catalog.pg_roles grantee ON (acl_final.grantee = grantee.oid) +GROUP BY grantor.rolname, grantee.rolname +ORDER BY grantee; \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/alter.sql b/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/alter.sql new file mode 100644 index 000000000..da888faaf --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/alter.sql @@ -0,0 +1,22 @@ +{### SQL to alter directory ###} +{% import 'macros/privilege.macros' as PRIVILEGE %} +{% if data %} +{### Owner on directory ###} +{% if data.diruser %} +ALTER DIRECTORY {{ conn|qtIdent(data.name) }} + OWNER TO {{ conn|qtIdent(data.diruser) }}; +{% endif %} + +{### ACL on directory ###} +{% if data.diracl %} +{% for priv in data.diracl %} +{{ PRIVILEGE.APPLY(conn, 'DIRECTORY', priv.grantee, data.name, priv.without_grant, priv.with_grant) }} +{% endfor %} +{% endif %} + +{% endif %} + +{# ======== The SQl Below will fetch id for given dataspace ======== #} +{% if directory %} +SELECT dir.oid FROM pg_catalog.edb_dir dir WHERE dirname = {{directory|qtLiteral(conn)}}; +{% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/create.sql b/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/create.sql new file mode 100644 index 000000000..4467de425 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/create.sql @@ -0,0 +1,4 @@ +{### SQL to create directory object ###} +{% if data %} +CREATE DIRECTORY {{ conn|qtIdent(data.name) }} AS {{ data.path|qtLiteral(conn) }}; +{% endif %} \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/delete.sql b/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/delete.sql new file mode 100644 index 000000000..6b7cb9277 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/delete.sql @@ -0,0 +1,2 @@ +{### SQL to delete directory object ###} +DROP DIRECTORY IF EXISTS {{ conn|qtIdent(dr_name) }}; diff --git a/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/nodes.sql b/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/nodes.sql new file mode 100644 index 000000000..4cfb1f649 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/nodes.sql @@ -0,0 +1,12 @@ +SELECT + dir.oid AS oid, + dirname AS name, + dirowner AS owner, + dirpath AS path +FROM + pg_catalog.edb_dir dir +{% if dr_id %} +WHERE + dir.oid={{ dr_id|qtLiteral(conn) }}::OID +{% endif %} +ORDER BY name; \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/properties.sql b/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/properties.sql new file mode 100644 index 000000000..748072a31 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/properties.sql @@ -0,0 +1,13 @@ +{### SQL to fetch directory object properties ###} +SELECT + dir.oid, + dirname AS name, + pg_catalog.pg_get_userbyid(dirowner) as diruser, + dirpath AS path, + pg_catalog.array_to_string(diracl::text[], ', ') as acl +FROM + pg_catalog.edb_dir dir +{% if dr_id %} +WHERE dir.oid={{ dr_id|qtLiteral(conn) }}::OID +{% endif %} +ORDER BY name; \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/update.sql b/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/update.sql new file mode 100644 index 000000000..edb1becd5 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/templates/directories/sql/default/update.sql @@ -0,0 +1,37 @@ +{### SQL to update directory object ###} +{% import 'macros/privilege.macros' as PRIVILEGE %} +{% if data %} + +{# ==== To update directory name ==== #} +{% if data.name and data.name != o_data.name %} +ALTER DIRECTORY {{ conn|qtIdent(o_data.name) }} + RENAME TO {{ conn|qtIdent(data.name) }}; +{% endif %} + +{# ==== To update OWNER name ==== #} +{% if data.diruser %} +ALTER DIRECTORY {{ conn|qtIdent(data.name) }} OWNER TO {{ conn|qtIdent(data.diruser) }}; +{% endif %} + +{# ==== To update directory privileges ==== #} +{# Change the privileges #} +{% if data.diracl %} +{% if 'deleted' in data.diracl %} +{% for priv in data.diracl.deleted %} +{{ PRIVILEGE.RESETALL(conn, 'DIRECTORY', priv.grantee, data.name) }} +{% endfor %} +{% endif %} +{% if 'changed' in data.diracl %} +{% for priv in data.diracl.changed %} +{{ PRIVILEGE.RESETALL(conn, 'DIRECTORY', priv.grantee, data.name) }} +{{ PRIVILEGE.APPLY(conn, 'DIRECTORY', priv.grantee, data.name, priv.without_grant, priv.with_grant) }} +{% endfor %} +{% endif %} +{% if 'added' in data.diracl %} +{% for priv in data.diracl.added %} +{{ PRIVILEGE.APPLY(conn, 'DIRECTORY', priv.grantee, data.name, priv.without_grant, priv.with_grant) }} +{% endfor %} +{% endif %} + +{% endif %} +{% endif %} diff --git a/web/pgadmin/browser/server_groups/servers/directories/tests/__init__.py b/web/pgadmin/browser/server_groups/servers/directories/tests/__init__.py new file mode 100644 index 000000000..ed8fa7e13 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/tests/__init__.py @@ -0,0 +1,15 @@ +########################################################################## +# +# pgAdmin 4 - PostgreSQL Tools +# +# Copyright (C) 2013 - 2025, The pgAdmin Development Team +# This software is released under the PostgreSQL Licence +# +########################################################################## + +from pgadmin.utils.route import BaseTestGenerator + + +class DirectoriesCreateTestCase(BaseTestGenerator): + def runTest(self): + return diff --git a/web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/alter_directory_owner.msql b/web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/alter_directory_owner.msql new file mode 100644 index 000000000..af01de047 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/alter_directory_owner.msql @@ -0,0 +1 @@ +ALTER DIRECTORY "Dir1_$%{}[]()&*^!@""'`\/#" OWNER TO enterprisedb; \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/alter_directory_owner.sql b/web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/alter_directory_owner.sql new file mode 100644 index 000000000..9a3b360ec --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/alter_directory_owner.sql @@ -0,0 +1,8 @@ +-- Directory: Dir1_$%{}[]()&*^!@"'`\/# + +-- DROP DIRECTORY IF EXISTS Dir1_$%{}[]()&*^!@"'`\/#; + +CREATE DIRECTORY "Dir1_$%{}[]()&*^!@""'`\/#" AS '/home/test_dir'; + +ALTER DIRECTORY "Dir1_$%{}[]()&*^!@""'`\/#" + OWNER TO enterprisedb; \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/create_directory.msql b/web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/create_directory.msql new file mode 100644 index 000000000..313e0b6f0 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/create_directory.msql @@ -0,0 +1,4 @@ +CREATE DIRECTORY "Dir1_$%{}[]()&*^!@""'`\/#" AS '/home/test_dir'; + +ALTER DIRECTORY "Dir1_$%{}[]()&*^!@""'`\/#" + OWNER TO enterprisedb; diff --git a/web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/create_directory.sql b/web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/create_directory.sql new file mode 100644 index 000000000..9a3b360ec --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/create_directory.sql @@ -0,0 +1,8 @@ +-- Directory: Dir1_$%{}[]()&*^!@"'`\/# + +-- DROP DIRECTORY IF EXISTS Dir1_$%{}[]()&*^!@"'`\/#; + +CREATE DIRECTORY "Dir1_$%{}[]()&*^!@""'`\/#" AS '/home/test_dir'; + +ALTER DIRECTORY "Dir1_$%{}[]()&*^!@""'`\/#" + OWNER TO enterprisedb; \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/test.json b/web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/test.json new file mode 100644 index 000000000..12950fd2a --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/tests/ppas/default/test.json @@ -0,0 +1,36 @@ +{ + "scenarios": [ + { + "type": "create", + "name": "Create Directories", + "endpoint": "NODE-directory.obj", + "sql_endpoint": "NODE-directory.sql_id", + "msql_endpoint": "NODE-directory.msql", + "data": { + "name": "Dir1_$%{}[]()&*^!@\"'`\\/#", + "diruser": "enterprisedb", + "path": "/home/test_dir" + }, + "expected_sql_file": "create_directory.sql", + "expected_msql_file": "create_directory.msql" + }, + { + "type": "alter", + "name": "Alter Directory owner", + "endpoint": "NODE-directory.obj_id", + "sql_endpoint": "NODE-directory.sql_id", + "msql_endpoint": "NODE-directory.msql_id", + "data": { + "diruser": "enterprisedb" + }, + "expected_sql_file": "alter_directory_owner.sql", + "expected_msql_file": "alter_directory_owner.msql" + }, + { + "type": "delete", + "name": "Drop Directories", + "endpoint": "NODE-directory.obj_id", + "data": {} + } + ] +} diff --git a/web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_add.py b/web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_add.py new file mode 100644 index 000000000..a70a011b1 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_add.py @@ -0,0 +1,63 @@ +########################################################################## +# +# pgAdmin 4 - PostgreSQL Tools +# +# Copyright (C) 2013 - 2025, The pgAdmin Development Team +# This software is released under the PostgreSQL Licence +# +########################################################################## + +import json +import uuid + +from pgadmin.utils import server_utils +from pgadmin.utils.route import BaseTestGenerator +from regression import parent_node_dict +from regression.python_test_utils import test_utils as utils +from . import utils as directories_utils + + +class DirectoriesAddTestCase(BaseTestGenerator): + """This class will test the add directories API""" + scenarios = [ + ('Add Directories', dict(url='/browser/directory/obj/')) + ] + + def setUp(self): + self.server_id = parent_node_dict["server"][-1]["server_id"] + server_con = server_utils.connect_server(self, self.server_id) + if server_con["info"] != "Server connected.": + raise Exception("Could not connect to server to add directory.") + if "type" in server_con["data"]: + if server_con["data"]["type"] == "pg": + message = "Directories are not supported by PG." + self.skipTest(message) + else: + if server_con["data"]["version"] < 130000: + message = "Directories are not supported by EPAS 12" \ + " and below." + self.skipTest(message) + + def runTest(self): + """This function will add directories under server node""" + self.directory = "test_directory_add%s" % \ + str(uuid.uuid4())[1:8] + data = { + "name": self.directory, + "path": "/home/test_dir" + } + response = self.tester.post(self.url + str(utils.SERVER_GROUP) + + "/" + str(self.server_id) + "/", + data=json.dumps(data), + content_type='html/json') + self.assertEqual(response.status_code, 200) + + def tearDown(self): + """This function delete the directory from the database.""" + connection = utils.get_db_connection(self.server['db'], + self.server['username'], + self.server['db_password'], + self.server['host'], + self.server['port'], + self.server['sslmode']) + directories_utils.delete_directories(connection, self.directory) diff --git a/web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_delete.py b/web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_delete.py new file mode 100644 index 000000000..eace19c5d --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_delete.py @@ -0,0 +1,65 @@ +########################################################################## +# +# pgAdmin 4 - PostgreSQL Tools +# +# Copyright (C) 2013 - 2025, The pgAdmin Development Team +# This software is released under the PostgreSQL Licence +# +########################################################################## + +import uuid + +from pgadmin.utils import server_utils +from pgadmin.utils.route import BaseTestGenerator +from regression import parent_node_dict +from regression.python_test_utils import test_utils as utils +from . import utils as directories_utils + + +class DirectoriesDeleteTestCase(BaseTestGenerator): + """This class will delete the Directory""" + scenarios = [ + ('Delete Directory', dict(url='/browser/directory/obj/')) + ] + + def setUp(self): + self.server_id = parent_node_dict["server"][-1]["server_id"] + server_response = server_utils.connect_server(self, self.server_id) + if server_response["info"] != "Server connected.": + raise Exception("Could not connect to server to add directories.") + if "type" in server_response["data"]: + if server_response["data"]["type"] == "pg": + message = "Directories are not supported by PG." + self.skipTest(message) + else: + if server_response["data"]["version"] < 130000: + message = "Directories are not supported by EPAS " \ + "12 and below." + self.skipTest(message) + self.directory_name = "test_directory_delete%s" % \ + str(uuid.uuid4())[1:8] + self.directory_path = "/home/test_dir" + self.directory_id = directories_utils.create_directories( + self.server, self.directory_name, self.directory_path) + + def runTest(self): + """This function will delete Directory.""" + directory_response = directories_utils.verify_directory( + self.server, self.directory_name) + if not directory_response: + raise Exception("Could not find the Directory to fetch.") + response = self.tester.delete( + "{0}{1}/{2}/{3}".format(self.url, utils.SERVER_GROUP, + self.server_id, self.directory_id), + follow_redirects=True) + self.assertEqual(response.status_code, 200) + + def tearDown(self): + """This function delete the Directory from the database.""" + connection = utils.get_db_connection(self.server['db'], + self.server['username'], + self.server['db_password'], + self.server['host'], + self.server['port'], + self.server['sslmode']) + directories_utils.delete_directories(connection, self.directory_name) diff --git a/web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_delete_multiple.py b/web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_delete_multiple.py new file mode 100644 index 000000000..137cdd4ec --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_delete_multiple.py @@ -0,0 +1,96 @@ +########################################################################## +# +# pgAdmin 4 - PostgreSQL Tools +# +# Copyright (C) 2013 - 2025, The pgAdmin Development Team +# This software is released under the PostgreSQL Licence +# +########################################################################## + +import uuid +import json + +from pgadmin.utils import server_utils +from pgadmin.utils.route import BaseTestGenerator +from regression import parent_node_dict +from regression.python_test_utils import test_utils as utils +from . import utils as directories_utils + + +class DirectoriesDeleteTestCase(BaseTestGenerator): + """This class will delete the directories""" + scenarios = [ + ('Delete multiple directories', + dict(url='/browser/directory/obj/')) + ] + + def setUp(self): + self.server_id = parent_node_dict["server"][-1]["server_id"] + server_response = server_utils.connect_server(self, self.server_id) + if server_response["info"] != "Server connected.": + raise Exception("Could not connect to server to add directory.") + if "type" in server_response["data"]: + if server_response["data"]["type"] == "pg": + message = "directories are not supported by PG." + self.skipTest(message) + else: + if server_response["data"]["version"] < 130000: + message = "directories are not supported by EPAS 12 " \ + "and below." + self.skipTest(message) + self.directory_names = ["test_directory_delete%s" % + str(uuid.uuid4())[1:8], + "test_directory_delete%s" % + str(uuid.uuid4())[1:8]] + self.directory_paths = ["/home/test_dir", "/home/test_dir1"] + self.directory_ids = [ + directories_utils.create_directories( + self.server, self.directory_names[0], self.directory_paths[0]), + directories_utils.create_directories( + self.server, self.directory_names[1], self.directory_paths[1])] + + def runTest(self): + """This function will delete directories.""" + directory_response = directories_utils.verify_directory( + self.server, self.directory_names[0]) + if not directory_response: + raise Exception("Could not find the directory to fetch.") + + directory_response = directories_utils.verify_directory( + self.server, self.directory_names[1]) + if not directory_response: + raise Exception("Could not find the directory to fetch.") + + data = {'ids': self.directory_ids} + response = self.tester.delete( + "{0}{1}/{2}/".format(self.url, + utils.SERVER_GROUP, + self.server_id), + follow_redirects=True, + data=json.dumps(data), + content_type='html/json' + ) + self.assertEqual(response.status_code, 200) + + def tearDown(self): + """This function delete the directory from the database.""" + connection = utils.get_db_connection(self.server['db'], + self.server['username'], + self.server['db_password'], + self.server['host'], + self.server['port'], + self.server['sslmode']) + directories_utils.delete_directories( + connection, + self.directory_names[0] + ) + connection = utils.get_db_connection(self.server['db'], + self.server['username'], + self.server['db_password'], + self.server['host'], + self.server['port'], + self.server['sslmode']) + directories_utils.delete_directories( + connection, + self.directory_names[1] + ) diff --git a/web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_get.py b/web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_get.py new file mode 100644 index 000000000..9dba5c72b --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_get.py @@ -0,0 +1,65 @@ +########################################################################## +# +# pgAdmin 4 - PostgreSQL Tools +# +# Copyright (C) 2013 - 2025, The pgAdmin Development Team +# This software is released under the PostgreSQL Licence +# +########################################################################## + +import uuid + +from pgadmin.utils import server_utils +from pgadmin.utils.route import BaseTestGenerator +from regression import parent_node_dict +from regression.python_test_utils import test_utils as utils +from . import utils as directorys_utils + + +class DirectoriesGetTestCase(BaseTestGenerator): + """This class will get the directories""" + scenarios = [ + ('Get directories', dict(url='/browser/directory/obj/')) + ] + + def setUp(self): + self.server_id = parent_node_dict["server"][-1]["server_id"] + server_response = server_utils.connect_server(self, self.server_id) + if server_response["info"] != "Server connected.": + raise Exception("Could not connect to server to add directories") + if "type" in server_response["data"]: + if server_response["data"]["type"] == "pg": + message = "directories are not supported by PG." + self.skipTest(message) + else: + if server_response["data"]["version"] < 13000: + message = "directories are not supported by EPAS 12" \ + " and below." + self.skipTest(message) + self.directory_name = "test_directory_get%s" % \ + str(uuid.uuid4())[1:8] + self.directory_path = "/home/test_dir" + self.directory_id = directorys_utils.create_directories( + self.server, self.directory_name, self.directory_path) + + def runTest(self): + """This function will get the directories.""" + directory_response = directorys_utils.verify_directory( + self.server, self.directory_name) + if not directory_response: + raise Exception("Could not find the directory to fetch.") + response = self.tester.get( + "{0}{1}/{2}/{3}".format(self.url, utils.SERVER_GROUP, + self.server_id, self.directory_id), + follow_redirects=True) + self.assertEqual(response.status_code, 200) + + def tearDown(self): + """This function delete the directory from the database.""" + connection = utils.get_db_connection(self.server['db'], + self.server['username'], + self.server['db_password'], + self.server['host'], + self.server['port'], + self.server['sslmode']) + directorys_utils.delete_directories(connection, self.directory_name) diff --git a/web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_put.py b/web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_put.py new file mode 100644 index 000000000..ca5c6481d --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/tests/test_directories_put.py @@ -0,0 +1,81 @@ +########################################################################## +# +# pgAdmin 4 - PostgreSQL Tools +# +# Copyright (C) 2013 - 2025, The pgAdmin Development Team +# This software is released under the PostgreSQL Licence +# +########################################################################## + +import json +import uuid + +from pgadmin.utils import server_utils +from pgadmin.utils.route import BaseTestGenerator +from regression import parent_node_dict +from regression.python_test_utils import test_utils as utils +from . import utils as directories_utils +from . import utils as roles_utils +from regression.python_test_utils import test_utils + + +class DirectoriesPutTestCase(BaseTestGenerator): + """This class will update the directories""" + scenarios = [ + ('Put directories', dict(url='/browser/directory/obj/')) + ] + + def setUp(self): + self.server_id = parent_node_dict["server"][-1]["server_id"] + server_response = server_utils.connect_server(self, self.server_id) + if server_response["info"] != "Server connected.": + raise Exception("Could not connect to server to add directories.") + if "type" in server_response["data"]: + if server_response["data"]["type"] == "pg": + message = "directories are not supported by PG." + self.skipTest(message) + else: + if server_response["data"]["version"] < 130000: + message = "directories are not supported by EPAS 12" \ + " and below." + self.skipTest(message) + self.directory_name = "test_directory_put%s" % \ + str(uuid.uuid4())[1:8] + self.directory_path = "/home/test_dir" + self.directory_id = directories_utils.create_directories( + self.server, self.directory_name, self.directory_path) + self.role_name = "role_for_directory_%s" % \ + str(uuid.uuid4())[1:8] + self.role = roles_utils.create_superuser_role( + self.server, self.role_name) + + def runTest(self): + """This function will update the directories.""" + directory_response = directories_utils.verify_directory( + self.server, self.directory_name) + if not directory_response: + raise Exception("Could not find the directory to fetch.") + self.directory_user = "test_directory_put%s" % \ + str(uuid.uuid4())[1:8] + data = {"id": self.directory_id, + "diruser": self.role_name} + url = '{0}{1}/{2}/{3}'.format( + self.url, utils.SERVER_GROUP, self.server_id, + self.directory_id) + response = self.tester.put( + url, + data=json.dumps(data), + follow_redirects=True + ) + self.assertEqual(response.status_code, 200) + + def tearDown(self): + """This function delete the directory and role from the database.""" + connection = utils.get_db_connection(self.server['db'], + self.server['username'], + self.server['db_password'], + self.server['host'], + self.server['port'], + self.server['sslmode']) + directories_utils.delete_directories(connection, self.directory_name) + test_utils.drop_role(self.server, "postgres", self.role) diff --git a/web/pgadmin/browser/server_groups/servers/directories/tests/utils.py b/web/pgadmin/browser/server_groups/servers/directories/tests/utils.py new file mode 100644 index 000000000..681799ffb --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/directories/tests/utils.py @@ -0,0 +1,122 @@ +########################################################################## +# +# pgAdmin 4 - PostgreSQL Tools +# +# Copyright (C) 2013 - 2025, The pgAdmin Development Team +# This software is released under the PostgreSQL Licence +# +########################################################################## + + +import sys +import traceback + +from regression.python_test_utils import test_utils as utils +from pgadmin.browser.server_groups.servers.roles.tests import \ + utils as roles_utils + + +def create_directories( + server, + directory_name, + directory_path, +): + """ + This function create the directories into databases. + """ + try: + connection = utils.get_db_connection(server['db'], + server['username'], + server['db_password'], + server['host'], + server['port'], + server['sslmode']) + old_isolation_level = connection.isolation_level + utils.set_isolation_level(connection, 0) + pg_cursor = connection.cursor() + sql = f"CREATE DIRECTORY {directory_name} AS '{directory_path}'" + pg_cursor.execute(sql) + utils.set_isolation_level(connection, old_isolation_level) + connection.commit() + # Get oid of newly created directory. + pg_cursor.execute("SELECT oid FROM pg_catalog.edb_dir WHERE " + " dirname='%s'" % directory_name) + directory = pg_cursor.fetchone() + directory_id = directory[0] + connection.close() + return directory_id + except Exception: + traceback.print_exc(file=sys.stderr) + + +def verify_directory(server, directory_name): + """ + This function verifies the directory exist in database or not. + """ + try: + connection = utils.get_db_connection(server['db'], + server['username'], + server['db_password'], + server['host'], + server['port'], + server['sslmode']) + pg_cursor = connection.cursor() + pg_cursor.execute("SELECT * FROM pg_catalog.edb_dir WHERE " + " dirname='%s'" % directory_name) + directory = pg_cursor.fetchone() + connection.close() + return directory + except Exception: + traceback.print_exc(file=sys.stderr) + + +def delete_directories(connection, directory_name): + """ + This function deletes the directory. + """ + try: + pg_cursor = connection.cursor() + pg_cursor.execute("SELECT * FROM pg_catalog.edb_dir WHERE" + " dirname='%s'" % directory_name) + directory_name_count = len(pg_cursor.fetchall()) + if directory_name_count: + old_isolation_level = connection.isolation_level + utils.set_isolation_level(connection, 0) + pg_cursor.execute("DROP DIRECTORY IF EXISTS %s" % directory_name) + utils.set_isolation_level(connection, old_isolation_level) + connection.commit() + connection.close() + except Exception: + traceback.print_exc(file=sys.stderr) + + +def create_superuser_role(server, role_name): + """ + This function create the role as superuser. + """ + try: + connection = utils.get_db_connection(server['db'], + server['username'], + server['db_password'], + server['host'], + server['port'], + server['sslmode']) + old_isolation_level = connection.isolation_level + utils.set_isolation_level(connection, 0) + pg_cursor = connection.cursor() + sql = ''' + CREATE USER "%s" WITH + SUPERUSER + ''' % (role_name) + pg_cursor.execute(sql) + utils.set_isolation_level(connection, old_isolation_level) + connection.commit() + # Get oid of newly created directory + pg_cursor.execute("SELECT usename FROM pg_user WHERE " + " usename='%s'" % role_name) + user_role = pg_cursor.fetchone() + role_username = user_role[0] + connection.close() + return role_username + except Exception: + traceback.print_exc(file=sys.stderr) diff --git a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_add.py b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_add.py index 5e0e8626e..0f6069ca4 100644 --- a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_add.py +++ b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_add.py @@ -35,7 +35,7 @@ class ResourceGroupsAddTestCase(BaseTestGenerator): self.skipTest(message) else: if server_con["data"]["version"] < 90400: - message = "Resource groups are not supported by PPAS 9.3" \ + message = "Resource groups are not supported by EPAS 9.3" \ " and below." self.skipTest(message) diff --git a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_delete.py b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_delete.py index 620d9602f..85f9726b4 100644 --- a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_delete.py +++ b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_delete.py @@ -34,7 +34,7 @@ class ResourceGroupsDeleteTestCase(BaseTestGenerator): self.skipTest(message) else: if server_response["data"]["version"] < 90400: - message = "Resource groups are not supported by PPAS " \ + message = "Resource groups are not supported by EPAS " \ "9.3 and below." self.skipTest(message) self.resource_group = "test_resource_group_delete%s" % \ diff --git a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_delete_multiple.py b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_delete_multiple.py index e3c1c63e5..ff4f518b3 100644 --- a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_delete_multiple.py +++ b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_delete_multiple.py @@ -36,7 +36,7 @@ class ResourceGroupsDeleteTestCase(BaseTestGenerator): self.skipTest(message) else: if server_response["data"]["version"] < 90400: - message = "Resource groups are not supported by PPAS " \ + message = "Resource groups are not supported by EPAS " \ "9.3 and below." self.skipTest(message) self.resource_groups = ["test_resource_group_delete%s" % diff --git a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_put.py b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_put.py index 71837261f..c78bb8cad 100644 --- a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_put.py +++ b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/test_resource_groups_put.py @@ -35,7 +35,7 @@ class ResourceGroupsPutTestCase(BaseTestGenerator): self.skipTest(message) else: if server_response["data"]["version"] < 90400: - message = "Resource groups are not supported by PPAS 9.3" \ + message = "Resource groups are not supported by EPAS 9.3" \ " and below." self.skipTest(message) self.resource_group_name = "test_resource_group_put%s" % \ diff --git a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/tests_resource_groups_get.py b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/tests_resource_groups_get.py index 6e6e44c4c..31a383085 100644 --- a/web/pgadmin/browser/server_groups/servers/resource_groups/tests/tests_resource_groups_get.py +++ b/web/pgadmin/browser/server_groups/servers/resource_groups/tests/tests_resource_groups_get.py @@ -34,7 +34,7 @@ class ResourceGroupsGetTestCase(BaseTestGenerator): self.skipTest(message) else: if server_response["data"]["version"] < 90400: - message = "Resource groups are not supported by PPAS 9.3" \ + message = "Resource groups are not supported by EPAS 9.3" \ " and below." self.skipTest(message) self.resource_group = "test_resource_group_get%s" % \ diff --git a/web/pgadmin/browser/server_groups/servers/roles/tests/role_test_data.json b/web/pgadmin/browser/server_groups/servers/roles/tests/role_test_data.json index 94a9ca6f3..b981929e4 100644 --- a/web/pgadmin/browser/server_groups/servers/roles/tests/role_test_data.json +++ b/web/pgadmin/browser/server_groups/servers/roles/tests/role_test_data.json @@ -80,7 +80,7 @@ "new_role_name": "CURRENT_ROLE" }, "server_min_version": 140000, - "skip_msg": "CURRENT_ROLE are not supported by PPAS/PG 13.0 and below.", + "skip_msg": "CURRENT_ROLE are not supported by EPAS/PG 13.0 and below.", "mocking_required": false, "mock_data": {}, "expected_data": { @@ -196,7 +196,7 @@ "new_role_name": "CURRENT_ROLE" }, "server_min_version": 140000, - "skip_msg": "CURRENT_ROLE are not supported by PPAS/PG 13.0 and below.", + "skip_msg": "CURRENT_ROLE are not supported by EPAS/PG 13.0 and below.", "mocking_required": false, "mock_data": {}, "expected_data": { diff --git a/web/pgadmin/browser/server_groups/servers/utils.py b/web/pgadmin/browser/server_groups/servers/utils.py index 2402f52da..9b5e6b7b9 100644 --- a/web/pgadmin/browser/server_groups/servers/utils.py +++ b/web/pgadmin/browser/server_groups/servers/utils.py @@ -114,7 +114,9 @@ def parse_priv_to_db(str_privileges, allowed_acls=[]): 'T': 'TEMPORARY', 'a': 'INSERT', 'r': 'SELECT', + 'R': 'READ', 'w': 'UPDATE', + 'W': 'WRITE', 'd': 'DELETE', 'D': 'TRUNCATE', 'x': 'REFERENCES', diff --git a/web/pgadmin/browser/templates/browser/js/utils.js b/web/pgadmin/browser/templates/browser/js/utils.js index 4bbbdbc3f..24baa5264 100644 --- a/web/pgadmin/browser/templates/browser/js/utils.js +++ b/web/pgadmin/browser/templates/browser/js/utils.js @@ -81,7 +81,7 @@ define('pgadmin.browser.utils', 'coll-role', 'role', 'coll-resource_group', 'resource_group', 'coll-database', 'coll-pga_job', 'coll-pga_schedule', 'coll-pga_jobstep', 'pga_job', 'pga_schedule', 'pga_jobstep', - 'coll-replica_node', 'replica_node' + 'coll-replica_node', 'replica_node','coll-directory','directory' ]; pgBrowser.utils = { diff --git a/web/pgadmin/static/js/components/Privilege.jsx b/web/pgadmin/static/js/components/Privilege.jsx index 96bd3b51e..eed688fb3 100644 --- a/web/pgadmin/static/js/components/Privilege.jsx +++ b/web/pgadmin/static/js/components/Privilege.jsx @@ -36,6 +36,8 @@ export default function Privilege({value, onChange, controlProps}) { 'c': 'CONNECT', 'a': 'INSERT', 'r': 'SELECT', + 'R': 'READ', + 'W': 'WRITE', 'w': 'UPDATE', 'd': 'DELETE', 'D': 'TRUNCATE', diff --git a/web/regression/__init__.py b/web/regression/__init__.py index 5a54d9963..3a4ba4576 100644 --- a/web/regression/__init__.py +++ b/web/regression/__init__.py @@ -22,7 +22,8 @@ node_info_dict = { "did": [], # database "lrid": [], # role "tsid": [], # tablespace - "scid": [] # schema + "scid": [], # schema + "oid": [] # directory } global parent_node_dict @@ -31,5 +32,6 @@ parent_node_dict = { "database": [], "tablespace": [], "role": [], - "schema": [] + "schema": [], + "directory": [] } diff --git a/web/regression/javascript/schema_ui_files/directory.ui.spec.js b/web/regression/javascript/schema_ui_files/directory.ui.spec.js new file mode 100644 index 000000000..e26327eaf --- /dev/null +++ b/web/regression/javascript/schema_ui_files/directory.ui.spec.js @@ -0,0 +1,49 @@ +///////////////////////////////////////////////////////////// +// +// pgAdmin 4 - PostgreSQL Tools +// +// Copyright (C) 2013 - 2025, The pgAdmin Development Team +// This software is released under the PostgreSQL Licence +// +////////////////////////////////////////////////////////////// + + +import BaseUISchema from 'sources/SchemaView/base_schema.ui'; +import DirectorySchema from '../../../pgadmin/browser/server_groups/servers/directories/static/js/directory.ui'; + +import {genericBeforeEach, getCreateView, getEditView, getPropertiesView} from '../genericFunctions'; + +class MockSchema extends BaseUISchema { + get baseFields() { + return []; + } +} + +describe('DirectorySchema', ()=>{ + + const createSchemaObject = () => new DirectorySchema( + ()=>new MockSchema(), + { + role: ()=>[], + nodeInfo: {server: {user: {name:'ppass', id:0}}} + }, + ); + let getInitData = ()=>Promise.resolve({}); + + beforeEach(()=>{ + genericBeforeEach(); + }); + + it('create', async ()=>{ + await getCreateView(createSchemaObject()); + }); + + it('edit', async ()=>{ + await getEditView(createSchemaObject(), getInitData); + }); + + it('properties', async ()=>{ + await getPropertiesView(createSchemaObject(), getInitData); + }); +}); + diff --git a/web/webpack.config.js b/web/webpack.config.js index bd2d0a1d8..d6640ff12 100644 --- a/web/webpack.config.js +++ b/web/webpack.config.js @@ -179,6 +179,7 @@ module.exports = [{ 'pure|pgadmin.node.publication', 'pure|pgadmin.node.subscription', 'pure|pgadmin.node.tablespace', + 'pure|pgadmin.node.directory', 'pure|pgadmin.node.resource_group', 'pure|pgadmin.node.event_trigger', 'pure|pgadmin.node.extension', diff --git a/web/webpack.shim.js b/web/webpack.shim.js index bb73bf122..03042600c 100644 --- a/web/webpack.shim.js +++ b/web/webpack.shim.js @@ -128,6 +128,7 @@ let webpackShimConfig = { 'pgadmin.node.synonym': path.join(__dirname, './pgadmin/browser/server_groups/servers/databases/schemas/synonyms/static/js/synonym'), 'pgadmin.node.table': path.join(__dirname, './pgadmin/browser/server_groups/servers/databases/schemas/tables/static/js/table'), 'pgadmin.node.tablespace': path.join(__dirname, './pgadmin/browser/server_groups/servers/tablespaces/static/js/tablespace'), + 'pgadmin.node.directory': path.join(__dirname, './pgadmin/browser/server_groups/servers/directories/static/js/directory'), 'pgadmin.node.trigger': path.join(__dirname, './pgadmin/browser/server_groups/servers/databases/schemas/tables/triggers/static/js/trigger'), 'pgadmin.node.trigger_function': path.join(__dirname, './pgadmin/browser/server_groups/servers/databases/schemas/functions/static/js/trigger_function'), 'pgadmin.node.type': path.join(__dirname, './pgadmin/browser/server_groups/servers/databases/schemas/types/static/js/type'),