Hi,

Please find attached patch for the Security Labels, Privileges and
Variables macros for the functions modules.


*Usage of the macros:*


*Security labels:*

SECLABLE.SET(conn, 'FUNCTION', func_name, provider, security_label,
func_schema, func_args)

SECLABLE.UNSET(conn, 'FUNCTION', func_name, provider, func_schema,
func_args)

*Privileges:*

PRIVILEGE.SET(conn, 'FUNCTION', grantee, func_name,
privileges_without_grant, privileges_with_grant, func_schema, func_args)

PRIVILEGE.UNSETALL(conn, 'FUNCTION', grantee, func_name, func_schema,
func_args)

*Variables:*

VARIABLES.SET(conn, 'FUNCTION', func_name, options, func_schema, func_args)

VARIABLES.UNSET(conn, 'FUNCTION', func_name, options, func_schema,
func_args)


Thanks,
Khushboo
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/functions/privilege.macros b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/functions/privilege.macros
new file mode 100644
index 0000000..075e768
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/functions/privilege.macros
@@ -0,0 +1,14 @@
+{##############################################}
+{# Macros for Privileges (functions module)   #}
+{##############################################}
+{% macro SET(conn, type, role, param, priv, with_grant, schema, func_args) -%}
+{% if priv %}
+GRANT {{ priv }} ON {{ type }} {{ conn|qtIdent(schema, param) }}({{func_args}}) TO {{ conn|qtIdent(role) }};
+{% endif %}
+{% if with_grant %}
+GRANT {{ with_grant }} ON {{ type }} {{ conn|qtIdent(schema, param) }}({{func_args}}) TO {{ conn|qtIdent(role) }} WITH GRANT OPTION;
+{% endif %}
+{%- endmacro %}
+{% macro UNSETALL(conn, type, role, param, schema, func_args) -%}
+REVOKE ALL ON {{ type }} {{ conn|qtIdent(schema, param) }}({{func_args}}) FROM {{conn|qtIdent(role) }};
+{%- endmacro %}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/functions/security.macros b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/functions/security.macros
new file mode 100644
index 0000000..dd2a086
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/functions/security.macros
@@ -0,0 +1,9 @@
+{#################################################}
+{# Macros for Security Labels (functions module) #}
+{#################################################}
+{% macro SET(conn, type, name, provider, label, schema, func_args) -%}
+SECURITY LABEL FOR {{ provider }} ON {{ type }} {{ conn|qtIdent(schema, name) }}({{func_args}}) IS {{ label|qtLiteral }};
+{%- endmacro %}
+{% macro UNSET(conn, type, name, provider, schema, func_args) -%}
+SECURITY LABEL FOR {{ provider }} ON {{ type }} {{ conn|qtIdent(schema, name) }}({{func_args}}) IS NULL;
+{%- endmacro %}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/functions/variable.macros b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/functions/variable.macros
new file mode 100644
index 0000000..02f3307
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/templates/macros/functions/variable.macros
@@ -0,0 +1,13 @@
+{################################################}
+{# Macros for Variables (functions module)      #}
+{################################################}
+{% macro SET(conn, object_type, object_name, options, schema, func_args) -%}
+ALTER {{object_type}} {{ conn|qtIdent(schema, object_name) }}({{func_args}})
+    SET ({% for opt in options %}{% if loop.index != 1 %}
+, {% endif %}{{ conn|qtIdent(opt.name) }}={{ opt.value|qtLiteral }}{% endfor %});
+{%- endmacro %}
+{% macro UNSET(conn, object_type, object_name, options, schema, func_args) -%}
+ALTER {{object_type}} {{ conn|qtIdent(schema, object_name) }}({{func_args}})
+    RESET ({% for opt in options %}{% if loop.index != 1 %}
+, {% endif %}{{ conn|qtIdent(opt.name) }}{% endfor %});
+{%- endmacro %}
-- 
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Reply via email to