Hi,

PFA patch to fix the issue where 'Debug' option was not displaying on
Package -> Function if the user if non-super user.
RM#1948

Another minor issue where there was a whitespace on SQL panel while
displaying reversed engineering sql for Procedure.
RM#2146

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
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
diff --git 
a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.2_plus/create.sql
 
b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.2_plus/create.sql
index 0b11545..3c44602 100644
--- 
a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.2_plus/create.sql
+++ 
b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.2_plus/create.sql
@@ -14,8 +14,7 @@ CREATE OR REPLACE PROCEDURE {{ 
conn|qtIdent(data.pronamespace, data.name) }}{% i
 )
 {% endif %}
 
-AS
-{{ data.prosrc }};
+AS {{ data.prosrc }};
 {% if data.acl and not is_sql %}
 {% for p in data.acl %}
 
diff --git 
a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.5_plus/create.sql
 
b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.5_plus/create.sql
index eb592b2..8ddf35f 100644
--- 
a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.5_plus/create.sql
+++ 
b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.5_plus/create.sql
@@ -24,8 +24,7 @@ CREATE OR REPLACE PROCEDURE {{ 
conn|qtIdent(data.pronamespace, data.name) }}{% i
     SET {{ conn|qtIdent(v.name) }}={{ v.value|qtLiteral }}{% endfor -%}
 {% endif %}
 
-AS
-{{ data.prosrc }};
+AS {{ data.prosrc }};
 {% if data.acl and not is_sql %}
 {% for p in data.acl %}
 
diff --git 
a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.6_plus/create.sql
 
b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.6_plus/create.sql
index a39b571..137460c 100644
--- 
a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.6_plus/create.sql
+++ 
b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/9.6_plus/create.sql
@@ -26,8 +26,7 @@ CREATE OR REPLACE PROCEDURE {{ 
conn|qtIdent(data.pronamespace, data.name) }}{% i
     SET {{ conn|qtIdent(v.name) }}={{ v.value|qtLiteral }}{% endfor -%}
 {% endif %}
 
-AS
-{{ data.prosrc }};
+AS {{ data.prosrc }};
 {% if data.acl and not is_sql %}
 {% for p in data.acl %}
 
diff --git 
a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/default/create.sql
 
b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/default/create.sql
index 8a442d4..4b09eeb 100644
--- 
a/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/default/create.sql
+++ 
b/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/templates/procedure/ppas/sql/default/create.sql
@@ -14,8 +14,7 @@ CREATE OR REPLACE PROCEDURE {{ 
conn|qtIdent(data.pronamespace, data.name) }}{% i
 )
 {% endif %}
 
-AS
-{{ data.prosrc }};
+AS {{ data.prosrc }};
 {% if data.acl and not is_sql %}
 {% for p in data.acl %}
 

Reply via email to