MailboxBackend: fix redirections

This commit is contained in:
Alice Gaudon 2021-03-01 13:29:30 +01:00
parent 74f7d92437
commit 6478d77733
1 changed files with 9 additions and 8 deletions

View File

@ -105,7 +105,7 @@ export default class MailboxBackendController extends Controller {
const domain = MailDomain.create(req.body);
await domain.save();
req.flash('success', `Domain ${domain.name} successfully added with owner ${(await domain.owner.get())?.name}`);
res.redirect(Controller.route('backend-mailboxes'));
res.redirect(Controller.route('backend-edit-domain', domain.id));
}
protected async getEditDomain(req: Request, res: Response): Promise<void> {
@ -134,7 +134,7 @@ export default class MailboxBackendController extends Controller {
await domain.save();
req.flash('success', `Domain ${domain.name} updated successfully.`);
res.redirect(Controller.route('backend-mailboxes'));
res.redirect(Controller.route('backend-edit-domain', domain.id));
}
protected async postRemoveDomain(req: Request, res: Response): Promise<void> {
@ -147,7 +147,7 @@ export default class MailboxBackendController extends Controller {
// Don't delete that domain if it still has identities
if ((await domain.identities.get()).length > 0) {
req.flash('error', `This domain still has identities. Please remove all of these first (don't forget to rename mailboxes).`);
res.redirect(Controller.route('backend-mailboxes'));
res.redirect(Controller.route('backend-edit-domain', domain.id));
return;
}
@ -185,7 +185,7 @@ export default class MailboxBackendController extends Controller {
}
req.flash('success', 'Mail identity ' + await identity.toEmail() + ' successfully created.');
res.redirect(Controller.route('backend-mailbox', req.params.id));
res.redirect(Controller.route('backend-mailbox', user.id));
}
protected async postDeleteMailIdentity(req: Request, res: Response): Promise<void> {
@ -195,15 +195,16 @@ export default class MailboxBackendController extends Controller {
.first();
if (!identity) throw new NotFoundHttpError('Mail identity', req.url);
const user = await identity.user.get();
if (user?.as(UserMailIdentityComponent).main_mail_identity_id === identity.id) {
const user = identity.user.getOrFail();
if (!user) throw new NotFoundHttpError('Mail identity owner', req.url);
if (user.as(UserMailIdentityComponent).main_mail_identity_id === identity.id) {
req.flash('error', `Cannot delete this user's mailbox identity.`);
res.redirect(Controller.route('backend-mailbox', req.params.id));
res.redirect(Controller.route('backend-mailbox', user.id));
return;
}
await identity.delete();
req.flash('success', 'Identity ' + await identity.toEmail() + ' successfully deleted.');
res.redirect(Controller.route('backend-mailbox', req.params.id));
res.redirect(Controller.route('backend-mailbox', user.id));
}
}