HttpServletRequest request
) throws Exception {
Template tmpl = Template.getTemplate(request);
if (!tmpl.isSessionAuthorized()) {
throw new AccessViolationException("Not authorized");
}
User user = tmpl.getCurrentUser();
user.checkAnonymous();
Topic message = messageDao.getById(msgid);
if (message.isDeleted()) {
throw new UserErrorException("Сообщение уже удалено");
}
if (!permissionService.isDeletable(message, user)) {
throw new AccessViolationException("Вы не можете удалить это сообщение");
}
topicService.deleteWithBonus(message, user, reason, bonus);
logger.info("Удалено сообщение " + msgid + " пользователем " + user.getNick() + " по причине `" + reason + '\'');