mirror of
https://github.com/nextcloud/server.git
synced 2026-06-09 08:44:07 -04:00
Merge pull request #19627 from owncloud/users-deletebeforecreate
Delete last undoable user before user creation
This commit is contained in:
commit
4b8632325a
2 changed files with 43 additions and 31 deletions
|
|
@ -172,8 +172,9 @@ DeleteHandler.prototype.cancel = function() {
|
|||
* it, defaults to false
|
||||
*/
|
||||
DeleteHandler.prototype.deleteEntry = function(keepNotification) {
|
||||
var deferred = $.Deferred();
|
||||
if(this.canceled || this.oidToDelete === false) {
|
||||
return false;
|
||||
return deferred.resolve().promise();
|
||||
}
|
||||
|
||||
var dh = this;
|
||||
|
|
@ -188,7 +189,7 @@ DeleteHandler.prototype.deleteEntry = function(keepNotification) {
|
|||
|
||||
var payload = {};
|
||||
payload[dh.ajaxParamID] = dh.oidToDelete;
|
||||
$.ajax({
|
||||
return $.ajax({
|
||||
type: 'DELETE',
|
||||
url: OC.generateUrl(dh.ajaxEndpoint+'/'+this.oidToDelete),
|
||||
// FIXME: do not use synchronous ajax calls as they block the browser !
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
var $userList;
|
||||
var $userListBody;
|
||||
|
||||
var UserDeleteHandler;
|
||||
var UserList = {
|
||||
availableGroups: [],
|
||||
offset: 0,
|
||||
|
|
@ -785,37 +786,47 @@ $(document).ready(function () {
|
|||
t('settings', 'Error creating user'));
|
||||
return false;
|
||||
}
|
||||
var groups = $('#newusergroups').val() || [];
|
||||
$.post(
|
||||
OC.generateUrl('/settings/users/users'),
|
||||
{
|
||||
username: username,
|
||||
password: password,
|
||||
groups: groups,
|
||||
email: email
|
||||
},
|
||||
function (result) {
|
||||
if (result.groups) {
|
||||
for (var i in result.groups) {
|
||||
var gid = result.groups[i];
|
||||
if(UserList.availableGroups.indexOf(gid) === -1) {
|
||||
UserList.availableGroups.push(gid);
|
||||
|
||||
var promise;
|
||||
if (UserDeleteHandler) {
|
||||
promise = UserDeleteHandler.deleteEntry();
|
||||
} else {
|
||||
promise = $.Deferred().resolve().promise();
|
||||
}
|
||||
|
||||
promise.then(function() {
|
||||
var groups = $('#newusergroups').val() || [];
|
||||
$.post(
|
||||
OC.generateUrl('/settings/users/users'),
|
||||
{
|
||||
username: username,
|
||||
password: password,
|
||||
groups: groups,
|
||||
email: email
|
||||
},
|
||||
function (result) {
|
||||
if (result.groups) {
|
||||
for (var i in result.groups) {
|
||||
var gid = result.groups[i];
|
||||
if(UserList.availableGroups.indexOf(gid) === -1) {
|
||||
UserList.availableGroups.push(gid);
|
||||
}
|
||||
$li = GroupList.getGroupLI(gid);
|
||||
userCount = GroupList.getUserCount($li);
|
||||
GroupList.setUserCount($li, userCount + 1);
|
||||
}
|
||||
$li = GroupList.getGroupLI(gid);
|
||||
userCount = GroupList.getUserCount($li);
|
||||
GroupList.setUserCount($li, userCount + 1);
|
||||
}
|
||||
}
|
||||
if(!UserList.has(username)) {
|
||||
UserList.add(result, true);
|
||||
}
|
||||
$('#newusername').focus();
|
||||
GroupList.incEveryoneCount();
|
||||
}).fail(function(result, textStatus, errorThrown) {
|
||||
OC.dialogs.alert(result.responseJSON.message, t('settings', 'Error creating user'));
|
||||
}).success(function(){
|
||||
$('#newuser').get(0).reset();
|
||||
});
|
||||
if(!UserList.has(username)) {
|
||||
UserList.add(result, true);
|
||||
}
|
||||
$('#newusername').focus();
|
||||
GroupList.incEveryoneCount();
|
||||
}).fail(function(result, textStatus, errorThrown) {
|
||||
OC.dialogs.alert(result.responseJSON.message, t('settings', 'Error creating user'));
|
||||
}).success(function(){
|
||||
$('#newuser').get(0).reset();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
if ($('#CheckboxStorageLocation').is(':checked')) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue