Skip to content

Commit

Permalink
Fixes #5
Browse files Browse the repository at this point in the history
  • Loading branch information
polonel committed Jul 26, 2016
1 parent e2fc71f commit cd62d75
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 10 deletions.
11 changes: 8 additions & 3 deletions src/controllers/api/v1/users.js
Original file line number Diff line number Diff line change
Expand Up @@ -373,22 +373,27 @@ api_users.updatePreferences = function(req, res) {
api_users.deleteUser = function(req, res) {
var username = req.params.username;

if(_.isUndefined(username)) return res.status(400).json({error: 'Invalid Request'});
if(_.isUndefined(username) || _.isNull(username)) return res.status(400).json({error: 'Invalid Request'});

async.waterfall([
function(cb) {
userSchema.getUserByUsername(username, function(err, user) {
if (err) return cb(err);

cb(null, user);
if (_.isNull(user)) {
console.log(username + ' was null');
return cb({message: 'Invalid User'});
}

return cb(null, user);
})
},
function(user, cb) {
var ticketSchema = require('../../../models/ticket');
ticketSchema.getTicketsByRequester(user._id, function(err, tickets) {
if (err) return cb(err);

var hasTickets = tickets.length > 0;
var hasTickets = _.size(tickets) > 0;
return cb(null, hasTickets, user);
});
},
Expand Down
2 changes: 1 addition & 1 deletion src/models/user.js
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ userSchema.statics.getUserByUsername = function(user, callback) {
return callback("Invalid Username - UserSchema.GetUserByUsername()", null);
}

return this.model(COLLECTION).findOne({username: new RegExp("^" + user.toLowerCase(), 'i') }, callback);
return this.model(COLLECTION).findOne({username: new RegExp("^" + user + "$", 'i') }, callback);
};

/**
Expand Down
14 changes: 10 additions & 4 deletions src/public/js/angularjs/controllers/accounts.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,24 +53,27 @@ define(['angular', 'underscore', 'jquery', 'modules/helpers', 'uikit', 'history'
});
};

var running = false;
$scope.deleteAccount = function($event) {
if (running)
return true;

$event.preventDefault();
var self = $($event.target);
var username = self.attr('data-username');
if (_.isUndefined(username))
return true;

running = true;
$http.delete(
'/api/v1/users/' + username
).success(function(data) {
if (!data.success) {
helpers.UI.showSnackbar(data.error, true);
return;
running = false;
return true;
}

//self.parents('[data-uk-filter]').remove();
//UIkit.$html.trigger('changed.uk.dom');

if (data.disabled) {
self.parents('.tru-card-head').addClass('tru-card-head-deleted');
self.addClass('hide');
Expand All @@ -84,9 +87,12 @@ define(['angular', 'underscore', 'jquery', 'modules/helpers', 'uikit', 'history'
helpers.UI.showSnackbar('Account ' + username + ' Successfully Deleted', false);
}

running = false;
}).error(function(err) {
console.log('[trudesk:accounts:deleteAccount] - Error: ' + err.error);
helpers.UI.showSnackbar(err.error, true);

running = false;
});
};

Expand Down
4 changes: 2 additions & 2 deletions src/public/js/pages/accounts.js
Original file line number Diff line number Diff line change
Expand Up @@ -196,8 +196,8 @@ define('pages/accounts', [
html += '<div class="uk-dropdown uk-dropdown-small">';
html += '<ul class="uk-nav">';
html += '<li><a href="#" data-username="' + user.username + '" ng-click="editAccount($event)" class="no-ajaxy">Edit</a></li>';
html += '<li><a href="#" data-username="' + user.username + '" ng-click="deleteAccount($event)" class="delete-account-action ' + (user.deleted ? "hide" : "") + '">Delete</a></li>';
html += '<li><a href="#" data-username="' + user.username + '" ng-click="enableAccount($event)" class="enable-account-action ' + (!user.deleted ? "hide" : "") + '">Enable</a></li>';
html += '<li><a href="#" data-username="' + user.username + '" ng-click="deleteAccount($event)" class="no-ajaxy delete-account-action ' + (user.deleted ? "hide" : "") + '">Delete</a></li>';
html += '<li><a href="#" data-username="' + user.username + '" ng-click="enableAccount($event)" class="no-ajaxy enable-account-action ' + (!user.deleted ? "hide" : "") + '">Enable</a></li>';
html += '</ul>';
html += '</div>';
html += '</div>';
Expand Down

0 comments on commit cd62d75

Please sign in to comment.