Merge pull request #19627 from owncloud/users-deletebeforecreate

Delete last undoable user before user creation
This commit is contained in:
Thomas Müller 2015-10-14 12:51:51 +02:00
commit 4b8632325a
2 changed files with 43 additions and 31 deletions

View file

@ -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 !

View file

@ -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')) {