diff --git a/src/main/java/org/hbp/mip/controllers/ArticlesApi.java b/src/main/java/org/hbp/mip/controllers/ArticlesApi.java index 01613d84f7ccca588c600d87860525bc204ac624..75311270b9d8c131dd33bcc6012c86353753ab33 100644 --- a/src/main/java/org/hbp/mip/controllers/ArticlesApi.java +++ b/src/main/java/org/hbp/mip/controllers/ArticlesApi.java @@ -56,6 +56,7 @@ public class ArticlesApi { } else { + queryString += " AND status='published'"; if(team != null && team) { // TODO: decide if this is needed @@ -182,15 +183,24 @@ public class ArticlesApi { @ApiParam(value = "slug", required = true) @PathVariable("slug") String slug ) { + User user = mipApplication.getUser(); + Session session = HibernateUtil.getSessionFactory().getCurrentSession(); Article article = null; try{ session.beginTransaction(); + article = (Article) session .createQuery("FROM Article WHERE slug= :slug") .setString("slug", slug) .uniqueResult(); + session.getTransaction().commit(); + + if (!article.getStatus().equals("published") && !article.getCreatedBy().getUsername().equals(user.getUsername())) + { + return ResponseEntity.status(HttpStatus.FORBIDDEN).body(null); + } } catch (Exception e) { if(session.getTransaction() != null)