Prevent creation of packages and rules in catalogs. Fixes #1682

This commit is contained in:
Surinder Kumar 2016-09-12 11:35:45 +01:00 committed by Dave Page
parent 70ea03a872
commit 28b7a033bc
4 changed files with 21 additions and 23 deletions

View File

@ -46,13 +46,13 @@ function($, _, S, pgAdmin, pgBrowser, alertify, Function) {
applies: ['object', 'context'], callback: 'show_obj_properties',
category: 'create', priority: 4, label: '{{ _('Procedure...') }}',
icon: 'wcTabIcon icon-procedure', data: {action: 'create', check:
false}
false}, enable: 'canCreateProc'
},{
name: 'create_procedure', node: 'procedure', module: this,
applies: ['object', 'context'], callback: 'show_obj_properties',
category: 'create', priority: 4, label: '{{ _('Procedure...') }}',
icon: 'wcTabIcon icon-procedure', data: {action: 'create', check:
true},
true}, enable: 'canCreateProc'
},{
name: 'create_procedure', node: 'schema', module: this,
applies: ['object', 'context'], callback: 'show_obj_properties',
@ -64,6 +64,19 @@ function($, _, S, pgAdmin, pgBrowser, alertify, Function) {
},
canDrop: pgSchemaNode.canChildDrop,
canDropCascade: false,
canCreateProc: function(itemData, item, data) {
var node_hierarchy = this.getTreeNodeHierarchy.apply(this, [item]);
// Do not provide Create option in catalog
if ('catalog' in node_hierarchy)
return false;
// Procedures supported only in PPAS
if ('server' in node_hierarchy && node_hierarchy['server'].server_type == "ppas")
return true;
return false;
},
model: Function.model.extend({
defaults: _.extend({},
Function.model.prototype.defaults,
@ -166,22 +179,7 @@ function($, _, S, pgAdmin, pgBrowser, alertify, Function) {
return null;
},
}
),
canCreateProc: function(itemData, item, data) {
var node_hierarchy = this.getTreeNodeHierarchy.apply(this, [item]);
// Do not provide Create option in catalog
if ('catalog' in node_hierarchy)
return false;
// Procedures supported only in PPAS
if ('server' in node_hierarchy && node_hierarchy['server'].type == "ppas")
return true;
return false;
}
})
});
}

View File

@ -12,7 +12,7 @@ import re
import simplejson as json
from functools import wraps
import pgadmin.browser.server_groups.servers.databases.schemas as schemas
import pgadmin.browser.server_groups.servers.databases as database
from flask import render_template, make_response, request, jsonify
from flask_babel import gettext as _
from pgadmin.browser.server_groups.servers.databases.schemas.utils \
@ -72,7 +72,7 @@ class PackageModule(SchemaChildModule):
Load the module script for schema, when any of the database node is
initialized.
"""
return schemas.SchemaModule.NODE_TYPE
return database.DatabaseModule.NODE_TYPE
blueprint = PackageModule(__name__)

View File

@ -9,7 +9,7 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
node: 'package',
label: '{{ _('Packages') }}',
type: 'coll-package',
columns: ['name', ,'owner', 'description']
columns: ['name' ,'owner', 'description']
});
};
@ -22,7 +22,7 @@ function($, _, S, pgAdmin, pgBrowser, alertify) {
collection_type: 'coll-package',
hasSQL: true,
hasDepends: true,
parent_type: ['schema'],
parent_type: ['schema', 'catalog'],
Init: function() {
/* Avoid mulitple registration of menus */
if (this.initialized)

View File

@ -240,7 +240,7 @@ function($, _, S, pgAdmin, pgBrowser, CodeMirror) {
Check if it is view and its parent node is schema
then allow to create Rule
*/
else if('view' == d._type){
else if('view' == d._type || 'table' == d._type){
prev_i = t.hasParent(i) ? t.parent(i) : null;
prev_d = prev_i ? t.itemData(prev_i) : null;
prev_j = t.hasParent(prev_i) ? t.parent(prev_i) : null;