parent
e65b605912
commit
5c140b3f58
|
@ -57,6 +57,18 @@ class UserManagementModule(PgAdminModule):
|
|||
"""
|
||||
return self.pref_show_system_objects
|
||||
|
||||
def get_exposed_url_endpoints(self):
|
||||
"""
|
||||
Returns:
|
||||
list: URL endpoints for backup module
|
||||
"""
|
||||
return [
|
||||
'user_management.roles', 'user_management.role',
|
||||
'user_management.update_user', 'user_management.delete_user',
|
||||
'user_management.create_user', 'user_management.users',
|
||||
'user_management.user'
|
||||
]
|
||||
|
||||
|
||||
# Create blueprint for BackupModule class
|
||||
blueprint = UserManagementModule(
|
||||
|
@ -115,8 +127,10 @@ def script():
|
|||
)
|
||||
|
||||
|
||||
@blueprint.route('/user/', methods=['GET'], defaults={'uid': None})
|
||||
@blueprint.route('/user/<int:uid>', methods=['GET'])
|
||||
@blueprint.route(
|
||||
'/user/', methods=['GET'], defaults={'uid': None}, endpoint='users'
|
||||
)
|
||||
@blueprint.route('/user/<int:uid>', methods=['GET'], endpoint='user')
|
||||
@roles_required('Administrator')
|
||||
def user(uid):
|
||||
"""
|
||||
|
@ -155,7 +169,7 @@ def user(uid):
|
|||
)
|
||||
|
||||
|
||||
@blueprint.route('/user/', methods=['POST'])
|
||||
@blueprint.route('/user/', methods=['POST'], endpoint='create_user')
|
||||
@roles_required('Administrator')
|
||||
def create():
|
||||
"""
|
||||
|
@ -208,7 +222,7 @@ def create():
|
|||
)
|
||||
|
||||
|
||||
@blueprint.route('/user/<int:uid>', methods=['DELETE'])
|
||||
@blueprint.route('/user/<int:uid>', methods=['DELETE'], endpoint='delete_user')
|
||||
@roles_required('Administrator')
|
||||
def delete(uid):
|
||||
"""
|
||||
|
@ -250,7 +264,7 @@ def delete(uid):
|
|||
return internal_server_error(errormsg=str(e))
|
||||
|
||||
|
||||
@blueprint.route('/user/<int:uid>', methods=['PUT'])
|
||||
@blueprint.route('/user/<int:uid>', methods=['PUT'], endpoint='update_user')
|
||||
@roles_required('Administrator')
|
||||
def update(uid):
|
||||
"""
|
||||
|
@ -301,8 +315,10 @@ def update(uid):
|
|||
return internal_server_error(errormsg=str(e))
|
||||
|
||||
|
||||
@blueprint.route('/role/', methods=['GET'], defaults={'rid': None})
|
||||
@blueprint.route('/role/<int:rid>', methods=['GET'])
|
||||
@blueprint.route(
|
||||
'/role/', methods=['GET'], defaults={'rid': None}, endpoint='roles'
|
||||
)
|
||||
@blueprint.route('/role/<int:rid>', methods=['GET'], endpoint='role')
|
||||
@roles_required('Administrator')
|
||||
def role(rid):
|
||||
"""
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
// Backup dialog
|
||||
define([
|
||||
'sources/gettext', 'jquery', 'underscore', 'underscore.string', 'alertify',
|
||||
'sources/gettext', 'sources/url_for', 'jquery', 'underscore', 'underscore.string', 'alertify',
|
||||
'pgadmin.browser', 'backbone', 'backgrid', 'backform', 'pgadmin.browser.node',
|
||||
'backgrid.select.all', 'backgrid.filter'
|
||||
], function(
|
||||
gettext, $, _, S, alertify, pgBrowser, Backbone, Backgrid, Backform, pgNode
|
||||
gettext, url_for, $, _, S, alertify, pgBrowser, Backbone, Backgrid, Backform, pgNode
|
||||
) {
|
||||
|
||||
// if module is already initialized, refer to that.
|
||||
|
@ -12,48 +12,47 @@ define([
|
|||
return pgBrowser.UserManagement;
|
||||
}
|
||||
|
||||
var BASEURL = '{{ url_for('user_management.index')}}',
|
||||
USERURL = BASEURL + 'user/',
|
||||
ROLEURL = BASEURL + 'role/',
|
||||
var USERURL = url_for('user_management.users'),
|
||||
ROLEURL = url_for('user_management.roles'),
|
||||
userFilter = function(collection) {
|
||||
return (new Backgrid.Extension.ClientSideFilter({
|
||||
collection: collection,
|
||||
placeholder: _('Filter by email'),
|
||||
return (new Backgrid.Extension.ClientSideFilter({
|
||||
collection: collection,
|
||||
placeholder: _('Filter by email'),
|
||||
|
||||
// The model fields to search for matches
|
||||
fields: ['email'],
|
||||
// The model fields to search for matches
|
||||
fields: ['email'],
|
||||
|
||||
// How long to wait after typing has stopped before searching can start
|
||||
wait: 150
|
||||
}));
|
||||
},
|
||||
// How long to wait after typing has stopped before searching can start
|
||||
wait: 150
|
||||
}));
|
||||
},
|
||||
StringDepCell = Backgrid.StringCell.extend({
|
||||
initialize: function() {
|
||||
Backgrid.StringCell.prototype.initialize.apply(this, arguments);
|
||||
Backgrid.Extension.DependentCell.prototype.initialize.apply(this, arguments);
|
||||
},
|
||||
dependentChanged: function () {
|
||||
this.$el.empty();
|
||||
initialize: function() {
|
||||
Backgrid.StringCell.prototype.initialize.apply(this, arguments);
|
||||
Backgrid.Extension.DependentCell.prototype.initialize.apply(this, arguments);
|
||||
},
|
||||
dependentChanged: function () {
|
||||
this.$el.empty();
|
||||
|
||||
var self = this,
|
||||
model = this.model,
|
||||
column = this.column,
|
||||
editable = this.column.get("editable");
|
||||
var self = this,
|
||||
model = this.model,
|
||||
column = this.column,
|
||||
editable = this.column.get("editable");
|
||||
|
||||
this.render();
|
||||
this.render();
|
||||
|
||||
is_editable = _.isFunction(editable) ? !!editable.apply(column, [model]) : !!editable;
|
||||
setTimeout(function() {
|
||||
self.$el.removeClass("editor");
|
||||
if (is_editable){ self.$el.addClass("editable"); }
|
||||
else { self.$el.removeClass("editable"); }
|
||||
}, 10);
|
||||
is_editable = _.isFunction(editable) ? !!editable.apply(column, [model]) : !!editable;
|
||||
setTimeout(function() {
|
||||
self.$el.removeClass("editor");
|
||||
if (is_editable){ self.$el.addClass("editable"); }
|
||||
else { self.$el.removeClass("editable"); }
|
||||
}, 10);
|
||||
|
||||
this.delegateEvents();
|
||||
return this;
|
||||
},
|
||||
remove: Backgrid.Extension.DependentCell.prototype.remove
|
||||
});
|
||||
this.delegateEvents();
|
||||
return this;
|
||||
},
|
||||
remove: Backgrid.Extension.DependentCell.prototype.remove
|
||||
});
|
||||
|
||||
pgBrowser.UserManagement = {
|
||||
init: function() {
|
||||
|
@ -381,8 +380,13 @@ define([
|
|||
return {
|
||||
buttons: [{
|
||||
text: '', key: 112, className: 'btn btn-default pull-left fa fa-lg fa-question',
|
||||
attrs:{name:'dialog_help', type:'button', label: gettext('Users'),
|
||||
url: '{{ url_for('help.static', filename='pgadmin_user.html') }}'}
|
||||
attrs:{
|
||||
name:'dialog_help', type:'button', label: gettext('Users'),
|
||||
url: url_for(
|
||||
'help.static', {
|
||||
'filename': 'pgadmin_user.html'
|
||||
})
|
||||
}
|
||||
},{
|
||||
text: gettext('Close'), key: 27, className: 'btn btn-danger fa fa-lg fa-times pg-alertify-button user_management_pg-alertify-button',
|
||||
attrs:{name:'close', type:'button'}
|
||||
|
|
Loading…
Reference in New Issue