Package ru.org.linux.topic

Examples of ru.org.linux.topic.Topic


  @Override
  @RequestMapping("/poll.boxlet")
  protected ModelAndView getData(HttpServletRequest request) throws Exception {
    final Poll poll = pollDao.getCurrentPoll();

    Topic msg = messageDao.getById(poll.getTopicId());

    int count = pollDao.getVotersCount(poll.getId());

    int countUsers = pollDao.getCountUsers(poll);
View Full Code Here


    }

    User user = tmpl.getCurrentUser();

    Poll poll = pollDao.getCurrentPoll();
    Topic msg = messageDao.getById(poll.getTopicId());

    if (voteid != poll.getId()) {
      throw new BadVoteException("голосовать можно только в текущий опрос");
    }

    if (votes==null || votes.length==0) {
      throw new UserErrorException("ничего не выбрано");
    }

    if (!poll.isMultiSelect() && votes.length!=1) {
      throw new BadVoteException("этот опрос допускает только один вариант ответа");
    }

    try {
      pollDao.updateVotes(voteid, votes, user);
    } catch (DuplicateKeyException ex) {
      logger.info("Failed to vote", ex);
    }

    return new ModelAndView(new RedirectView(msg.getLink()));
  }
View Full Code Here

      throw new AccessViolationException("Not authorized");
    }

    Map<String, Object> params = new HashMap<>();

    Topic msg = messageDao.getById(msgid);
    params.put("message", msg);

    Poll poll = pollDao.getPollByTopicId(msgid);
    if (!poll.isCurrent()) {
      throw new BadVoteException("голосовать можно только в текущий опрос");
View Full Code Here

      throw new UserErrorException("комментарий уже удален");
    }

    int topicId = comment.getTopicId();

    Topic topic = messageDao.getById(topicId);

    if (topic.isDeleted()) {
      throw new AccessViolationException("тема удалена");
    }

    params.put("topic", topic);
View Full Code Here

    return new ModelAndView("delete_comment", params);
  }

  private Optional<Comment> findNextComment(final Comment comment) throws MessageNotFoundException {
    Topic updatedTopic = messageDao.getById(comment.getTopicId());
    CommentList commentList = commentService.getCommentList(updatedTopic, false);

    return Iterables.tryFind(
            commentList.getList(),
            new Predicate<Comment>() {
View Full Code Here

    if (comment.isDeleted()) {
      throw new UserErrorException("комментарий уже удален");
    }

    Topic topic = messageDao.getById(comment.getTopicId());

    final boolean haveAnswers = commentService.isHaveAnswers(comment);

    if (!permissionService.isCommentDeletableNow(comment, user, topic, haveAnswers)) {
      throw new UserErrorException("комментарий нельзя удалить");
    }

    if (!user.isModerator() || comment.getUserid() == user.getId()) {
      bonus = 0;
    }

    List<Integer> deleted;

    if (user.isModerator()) {
      deleted = commentService.deleteWithReplys(topic, comment, reason, user, bonus);
    } else {
      if (commentService.deleteComment(msgid, reason, user)) {
        deleted = ImmutableList.of(msgid);
      } else {
        deleted = ImmutableList.of();
      }
    }

    Optional<Comment> nextComment = findNextComment(comment);

    searchQueueSender.updateComment(deleted);

    Map<String, Object> params = new HashMap<>();

    if (!deleted.isEmpty()) {
      params.put("message", "Удалено успешно");
      params.put("bigMessage", "Удаленные комментарии: "+deleted);
    } else {
      params.put("message", "Сообщение уже удалено");
    }

    if (nextComment.isPresent()) {
      params.put("link", topic.getLink()+"?cid="+nextComment.get().getId()+"&lastmod=");
    } else {
      params.put("link", topic.getLink());
    }

    return new ModelAndView("action-done", params);
  }
View Full Code Here

      if(service.isEmptyTextComment(add.getMsg())) {
        errors.rejectValue("msg", null, "комментарий не может быть пустым");
      }
    }

    Topic topic = add.getTopic();

    if (topic == null) {
      errors.rejectValue("topic", null, "тема не задана");
    } else {
      if (topic.isExpired()) {
        errors.reject(null, "нельзя добавлять в устаревшие темы");
      }

      if (topic.isDeleted()) {
        errors.reject(null, "нельзя добавлять в удаленные темы");
      }
    }

    if (add.getReplyto()!=null) {
      if (add.getReplyto().isDeleted()) {
        errors.reject(null, "нельзя комментировать удаленные комментарии");
      }

      if (topic==null || add.getReplyto().getTopicId() != topic.getId()) {
        errors.reject(null, "некорректная тема");
      }
    }

    if (add.getNick()!=null) {
View Full Code Here

    User user = tmpl.getCurrentUser();
    user.checkBlocked();
    user.checkAnonymous();

    Topic topic = messageDao.getById(msgid);
    if (topic.isDeleted()) {
      throw new UserErrorException("Тема удалена");
    }

    int id = memoriesDao.addToMemories(user, topic, watch);
View Full Code Here

   * @param topic тема
   * @param by редактор
   * @return true если можно, false если нет
   */
  public boolean isEditable(@Nonnull PreparedTopic topic, @Nullable User by) {
    Topic message = topic.getMessage();
    Section section = topic.getSection();
    User author = topic.getAuthor();

    if (message.isDeleted()) {
      return false;
    }

    if (by==null || by.isAnonymous() || by.isBlocked()) {
      return false;
    }

    if (message.isExpired()) {
      return false;
    }

    if (by.isAdministrator()) {
      return true;
    }

    if (!topic.isLorcode()) {
      return false;
    }

    if (by.isModerator()) {
      return true;
    }

    if (by.canCorrect() && section.isPremoderated()) {
      return true;
    }

    if (by.getId()==author.getId() && !message.isCommited()) {
      if (message.isSticky()) {
        return true;
      }

      if (section.isPremoderated()) {
        return true;
      }

      if (message.isDraft()) {
        return true;
      }

      if (author.getScore()>=EDIT_SELF_ALWAYS_SCORE) {
        return !message.isExpired();
      }

      DateTime editDeadline = new DateTime(message.getPostdate()).plus(EDIT_PERIOD);

      return editDeadline.isAfterNow();
    }

    return false;
View Full Code Here

   * @param topic тема
   * @param by редактор
   * @return true если можно, false если нет
   */
  public boolean isTagsEditable(@Nonnull PreparedTopic topic, @Nullable User by) {
    Topic message = topic.getMessage();
    Section section = topic.getSection();
    User author = topic.getAuthor();

    if (message.isDeleted()) {
      return false;
    }

    if (by==null || by.isAnonymous() || by.isBlocked()) {
      return false;
    }

    if (by.isAdministrator()) {
      return true;
    }

    if (by.isModerator()) {
      return true;
    }

    if (by.canCorrect()) {
      return true;
    }

    if (by.getId()==author.getId() && !message.isCommited()) {
      if (message.isSticky()) {
        return true;
      }

      if (section.isPremoderated()) {
        return true;
      }

      if (author.getScore()>=EDIT_SELF_ALWAYS_SCORE) {
        return !message.isExpired();
      }

      DateTime editDeadline = new DateTime(message.getPostdate()).plus(EDIT_PERIOD);

      return editDeadline.isAfterNow();
    }

    return false;
View Full Code Here

TOP

Related Classes of ru.org.linux.topic.Topic

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.