diff --git a/docs/en_US/directory_dialog.rst b/docs/en_US/directory_dialog.rst index f93b49a3d88..704bd657251 100644 --- a/docs/en_US/directory_dialog.rst +++ b/docs/en_US/directory_dialog.rst @@ -4,7 +4,7 @@ `Directory Dialog`:index: ************************* -Use the Directory dialog to Create an alias for a file system directory path. +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. diff --git a/docs/en_US/images/directory_definition.png b/docs/en_US/images/directory_definition.png index 9fe629deea3..3ff34eaa4ee 100644 Binary files a/docs/en_US/images/directory_definition.png and b/docs/en_US/images/directory_definition.png differ diff --git a/docs/en_US/images/directory_general.png b/docs/en_US/images/directory_general.png index 4941aa2835e..3229b7f5999 100644 Binary files a/docs/en_US/images/directory_general.png and b/docs/en_US/images/directory_general.png differ diff --git a/web/pgadmin/browser/server_groups/servers/directories/__init__.py b/web/pgadmin/browser/server_groups/servers/directories/__init__.py index 8a0c6827e49..987a6c60f6d 100644 --- a/web/pgadmin/browser/server_groups/servers/directories/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/directories/__init__.py @@ -316,26 +316,9 @@ def create(self, gid, sid): "/".join([self.template_path, self._ALTER_SQL]), data=data, conn=self.conn ) - - # Checking if we are not executing empty query - if SQL and SQL.strip('\n') and SQL.strip(' '): - status, res = self.conn.execute_scalar(SQL) - if not status: - return jsonify( - node=self.blueprint.generate_browser_node( - dr_id, - sid, - data['name'], - icon="icon-directory" - ), - success=0, - errormsg=gettext( - 'Directory created successfully.' - ), - info=gettext( - res - ) - ) + status, res = self.conn.execute_scalar(SQL) + if not status: + return internal_server_error(errormsg=res) return jsonify( node=self.blueprint.generate_browser_node( 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 index c3ee1656ed9..dad0546d03a 100644 --- 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 @@ -14,8 +14,8 @@ import { isEmptyString } from '../../../../../../static/js/validators'; export default class DirectorySchema extends BaseUISchema { constructor(getPrivilegeRoleSchema, treeNodeInfo, fieldOptions={}, initValues={}) { super({ + diruser: undefined, name: undefined, - owner: undefined, path: undefined, diracl: [], ...initValues, 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 index da888faaf20..3758d1f13e8 100644 --- 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 @@ -1,11 +1,6 @@ {### 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 %} 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 index 4467de425a7..cc2885fbd76 100644 --- 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 @@ -1,4 +1,17 @@ {### SQL to create directory object ###} {% if data %} + CREATE DIRECTORY {{ conn|qtIdent(data.name) }} AS {{ data.path|qtLiteral(conn) }}; + +{### Owner on directory ###} +{% if data.diruser %} +ALTER DIRECTORY {{ conn|qtIdent(data.name) }} + OWNER TO {{ conn|qtIdent(data.diruser) }}; +{% endif %} + +{% endif %} + +{# ======== The SQl Below will fetch id for given directory ======== #} +{% if directory %} +SELECT dir.oid FROM pg_catalog.edb_dir dir WHERE dirname = {{directory|qtLiteral(conn)}}; {% endif %} \ No newline at end of file