public Prediction createPrediction(SecurityContext sec, Prediction pred) { User user = securityCheck(sec, Roles.CREATE_PREDICTION); pred.setTags(TextUtils.tag(pred.getTags())); int id; pred = InputSanitizer.sanitize(pred); if (StringUtils.isBlank(pred.getSourceAuthor())) { pred.setType(Prediction.PredictionType.quote.name()); } else { pred.setType(Prediction.PredictionType.prediction.name()); } if (pred.getTitle() == null || pred.getTitle().trim().isEmpty()) { pred.setTitle(StringUtils.abbreviate(pred.getText(), 64)); } else { pred.setTitle(StringUtils.abbreviate(pred.getTitle(), 64)); } pred.setText(StringUtils.abbreviate(pred.getText(), MAX_PREDICTION_LENGTH)); if (sec != getAdminSecurityContext()) { pred.setCreatedByUserId(user.getId()); pred.setCreatedByUser(user.getFullName()); } pred.setTime(TextUtils.getProbablePredictionTime(pred.getText())); id = db.createPrediction(pred); pred.setId(id); return db.getPrediction(id); }
public int createComment(SecurityContext sec, int predictionId, Comment comment) { User user = securityCheck(sec, Roles.COMMENT); Prediction prediction = getPrediction(predictionId); comment = InputSanitizer.sanitize(comment); comment.setCreatedByUserId(user.getId()); if (StringUtils.isBlank(comment.getAuthor())) { comment.setAuthor(user.getEmail()); } int cid = db.createComment(prediction.getId(), comment); comment.setId(cid); comment.setPredictionId(predictionId); return cid; }
public boolean isOwner(SecurityContext sec, int predictionId) { User user = ((User) sec.getUserPrincipal()); return isAdmin(sec) || db.getPrediction(predictionId).getCreatedByUserId() == user.getId(); }