diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/__init__.py index c16d48a..4d34f13 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/__init__.py @@ -291,7 +291,8 @@ class EdbFuncView(PGChildNodeView, DataTypeReader): row['oid'], pkgid, row['name'], - icon="icon-" + self.node_type + icon="icon-" + self.node_type, + funcowner=row['funcowner'] ), status=200 ) @@ -302,7 +303,8 @@ class EdbFuncView(PGChildNodeView, DataTypeReader): row['oid'], pkgid, row['name'], - icon="icon-" + self.node_type + icon="icon-" + self.node_type, + funcowner=row['funcowner'] )) return make_json_response( diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbfunc/ppas/9.1_plus/node.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbfunc/ppas/9.1_plus/node.sql index 55e3bf4..44e3456 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbfunc/ppas/9.1_plus/node.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbfunc/ppas/9.1_plus/node.sql @@ -1,5 +1,6 @@ SELECT pg_proc.oid, - pg_proc.proname || '(' || COALESCE(pg_catalog.pg_get_function_identity_arguments(pg_proc.oid), '') || ')' AS name + pg_proc.proname || '(' || COALESCE(pg_catalog.pg_get_function_identity_arguments(pg_proc.oid), '') || ')' AS name, + pg_get_userbyid(proowner) AS funcowner FROM pg_proc, pg_namespace WHERE format_type(prorettype, NULL) != 'void' {% if fnid %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbfunc/ppas/9.2_plus/node.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbfunc/ppas/9.2_plus/node.sql index 77966e3..9a58068 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbfunc/ppas/9.2_plus/node.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbfunc/ppas/9.2_plus/node.sql @@ -1,5 +1,6 @@ SELECT pg_proc.oid, - pg_proc.proname || '(' || COALESCE(pg_catalog.pg_get_function_identity_arguments(pg_proc.oid), '') || ')' AS name + pg_proc.proname || '(' || COALESCE(pg_catalog.pg_get_function_identity_arguments(pg_proc.oid), '') || ')' AS name, + pg_get_userbyid(proowner) AS funcowner FROM pg_proc, pg_namespace WHERE format_type(prorettype, NULL) != 'void' {% if fnid %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbproc/ppas/9.1_plus/node.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbproc/ppas/9.1_plus/node.sql index c2df4c9..4d2a0df 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbproc/ppas/9.1_plus/node.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbproc/ppas/9.1_plus/node.sql @@ -1,5 +1,6 @@ SELECT pg_proc.oid, - pg_proc.proname || '(' || COALESCE(pg_catalog.pg_get_function_identity_arguments(pg_proc.oid), '') || ')' AS name + pg_proc.proname || '(' || COALESCE(pg_catalog.pg_get_function_identity_arguments(pg_proc.oid), '') || ')' AS name, + pg_get_userbyid(proowner) AS funcowner FROM pg_proc, pg_namespace WHERE format_type(prorettype, NULL) = 'void' {% if fnid %} diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbproc/ppas/9.2_plus/node.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbproc/ppas/9.2_plus/node.sql index c2df4c9..4d2a0df 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbproc/ppas/9.2_plus/node.sql +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/edbfuncs/templates/edbproc/ppas/9.2_plus/node.sql @@ -1,5 +1,6 @@ SELECT pg_proc.oid, - pg_proc.proname || '(' || COALESCE(pg_catalog.pg_get_function_identity_arguments(pg_proc.oid), '') || ')' AS name + pg_proc.proname || '(' || COALESCE(pg_catalog.pg_get_function_identity_arguments(pg_proc.oid), '') || ')' AS name, + pg_get_userbyid(proowner) AS funcowner FROM pg_proc, pg_namespace WHERE format_type(prorettype, NULL) = 'void' {% if fnid %} diff --git a/web/pgadmin/tools/debugger/templates/debugger/js/debugger.js b/web/pgadmin/tools/debugger/templates/debugger/js/debugger.js index 624ca80..bbbb443 100644 --- a/web/pgadmin/tools/debugger/templates/debugger/js/debugger.js +++ b/web/pgadmin/tools/debugger/templates/debugger/js/debugger.js @@ -126,8 +126,14 @@ define([ && !treeInfo.server.user.is_superuser) return false; + // Fetch object owner + var obj_owner = treeInfo.function && treeInfo.function.funcowner || + treeInfo.procedure && treeInfo.procedure.funcowner || + treeInfo.edbfunc && treeInfo.edbfunc.funcowner || + treeInfo.edbproc && treeInfo.edbproc.funcowner; + // Must be a super user or object owner to create breakpoints of any kind - if (!(treeInfo.server.user.is_superuser || treeInfo.function.funcowner == treeInfo.server.user.name)) + if (!(treeInfo.server.user.is_superuser || obj_owner == treeInfo.server.user.name)) return false; // For trigger node, language will be undefined - we should allow indirect debugging for trigger node