mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Fixes #1223 - Do not allow to drop user from non-super user.
Also - fixed some javascript variable scope issue in the 'delete_obj' function of nodes.
This commit is contained in:
committed by
Ashesh Vashi
parent
1bd37d1f76
commit
9436542074
@@ -297,7 +297,22 @@ function($, _, S, pgAdmin, pgBrowser, alertify, Backform) {
|
|||||||
dialogHelp: '{{ url_for('help.static', filename='role_dialog.html') }}',
|
dialogHelp: '{{ url_for('help.static', filename='role_dialog.html') }}',
|
||||||
label: '{{ _('Login/Group Role') }}',
|
label: '{{ _('Login/Group Role') }}',
|
||||||
hasSQL: true,
|
hasSQL: true,
|
||||||
canDrop: true,
|
canDrop: function(node, item) {
|
||||||
|
var treeData = this.getTreeNodeHierarchy(item),
|
||||||
|
server = treeData['server'];
|
||||||
|
/*
|
||||||
|
To Drop a role:
|
||||||
|
1) If Role we are deleting is superuser then User must be superuser
|
||||||
|
2) And for non-superuser roles User must have Create Role permission
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Role you are trying to drop is Superuser ?
|
||||||
|
if(node.is_superuser) {
|
||||||
|
return server.connected && server.user.is_superuser;
|
||||||
|
}
|
||||||
|
// For non super users
|
||||||
|
return server.connected && server.user.can_create_role;
|
||||||
|
},
|
||||||
hasDepends: true,
|
hasDepends: true,
|
||||||
node_label: function(r) {
|
node_label: function(r) {
|
||||||
return r.label;
|
return r.label;
|
||||||
|
|||||||
@@ -478,11 +478,11 @@ function($, _, S, pgAdmin, Menu, Backbone, Alertify, pgBrowser, Backform) {
|
|||||||
},
|
},
|
||||||
// Delete the selected object
|
// Delete the selected object
|
||||||
delete_obj: function(args, item) {
|
delete_obj: function(args, item) {
|
||||||
var input = args || {'url':'drop'};
|
var input = args || {'url':'drop'},
|
||||||
obj = this,
|
obj = this,
|
||||||
t = pgBrowser.tree,
|
t = pgBrowser.tree,
|
||||||
i = input.item || item || t.selected(),
|
i = input.item || item || t.selected(),
|
||||||
d = i && i.length == 1 ? t.itemData(i) : undefined;
|
d = i && i.length == 1 ? t.itemData(i) : undefined;
|
||||||
|
|
||||||
if (!d)
|
if (!d)
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user