ban user button in Admin

master
rob 1 year ago
parent d5eb929cc2
commit 814c358233

@ -35,6 +35,9 @@ class UserAdminController extends SiteController {
const { user: userService } = this.dtp.services;
try {
res.locals.userAccount = await userService.getLocalUserAccount(localUserId);
if (!res.locals.userAccount) {
throw new SiteError(404, 'User not found');
}
return next();
} catch (error) {
return next(error);
@ -42,9 +45,43 @@ class UserAdminController extends SiteController {
}
async postUpdateLocalUser (req, res, next) {
const { user: userService } = this.dtp.services;
const {
logan: loganService,
user: userService,
} = this.dtp.services;
try {
await userService.updateLocalForAdmin(res.locals.userAccount, req.body);
this.log.debug('local user update', { action: req.body.action });
switch (req.body.action) {
case 'update':
await userService.updateLocalForAdmin(res.locals.userAccount, req.body);
loganService.sendRequestEvent(module.exports, req, {
level: 'info',
event: 'postUpdateLocalUser',
message: 'local user account updated',
data: {
userAccount: {
_id: res.locals.userAccount._id,
username: res.locals.userAccount.username,
},
},
});
break;
case 'ban':
await userService.ban(res.locals.userAccount);
loganService.sendRequestEvent(module.exports, req, {
level: 'info',
event: 'postUpdateLocalUser',
message: 'local user banned from the app',
data: {
userAccount: {
_id: res.locals.userAccount._id,
username: res.locals.userAccount.username,
},
},
});
break;
}
res.redirect('/admin/user');
} catch (error) {
return next(error);

@ -792,7 +792,8 @@ class ChatService extends SiteService {
await ChatRoom
.find({ owner: user._id })
.populate(this.populateChatRoom)
.cursor(async (room) => {
.cursor()
.eachAsync(async (room) => {
try {
await this.deleteRoom(room);
++roomCount;

@ -76,7 +76,9 @@ block content
.uk-width-expand
+renderBackButton()
.uk-width-auto
button(type="submit").uk-button.uk-button-primary Update User
button(type="submit", name="action", value="ban").uk-button.uk-button-danger.uk-border-rounded Ban User
.uk-width-auto
button(type="submit", name="action", value="update").uk-button.uk-button-primary.uk-border-rounded Update User
div(class="uk-width-1-1 uk-width-1-3@l")

Loading…
Cancel
Save