diff --git a/src/main/java/org/hbp/mip/MIPApplication.java b/src/main/java/org/hbp/mip/MIPApplication.java index fc4264fc7e24293f44d738853a2931cf4b8f7595..963ce02c43ae05d95ff89e87ef7bd2b639ef0f16 100644 --- a/src/main/java/org/hbp/mip/MIPApplication.java +++ b/src/main/java/org/hbp/mip/MIPApplication.java @@ -75,6 +75,24 @@ public class MIPApplication extends WebSecurityConfigurerAdapter { return principal; } + private User principalToUser(Principal principal) { + Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + session.beginTransaction(); + org.hibernate.Query query = session.createQuery("from User where username= :username"); + query.setString("username", principal.getName()); + User user = (User) query.uniqueResult(); + session.getTransaction().commit(); + if(user == null) + { + session = HibernateUtil.getSessionFactory().getCurrentSession(); + session.beginTransaction(); + user = new User(principal); + session.save(user); + session.getTransaction().commit(); + } + return user; + } + @RequestMapping(value = "/articles", method = RequestMethod.GET) @ResponseBody public List<Article> getArticles() { @@ -133,13 +151,15 @@ public class MIPApplication extends WebSecurityConfigurerAdapter { @RequestMapping(value = "/articles", method = RequestMethod.POST) @ResponseBody - public Article postArticle(@RequestBody Article article) { + public Article postArticle(@RequestBody Article article, Principal principal) { + User user = principalToUser(principal); Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); article.setCreatedAt(new Date()); article.setPublishedAt(new Date()); article.setSlug(article.getTitle().toLowerCase()); article.setStatus("published"); + article.setCreatedBy(user); session.save(article); session.getTransaction().commit(); return article; diff --git a/src/main/java/org/hbp/mip/model/Article.java b/src/main/java/org/hbp/mip/model/Article.java index afc86a5b6e9a5d6ba3f64c63ef676ae87fda041b..d3a3173b85f73e13b6cfacafdb144767497cf119 100644 --- a/src/main/java/org/hbp/mip/model/Article.java +++ b/src/main/java/org/hbp/mip/model/Article.java @@ -10,6 +10,7 @@ import java.util.LinkedList; import java.util.List; @Entity +@Table(name = "article_mip") public class Article { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Chart.java b/src/main/java/org/hbp/mip/model/Chart.java index 382f9ac913a8b35500635bbb6b8b6193eedf976a..c5ec9db5cdb5a2515e765d92f1280a2cba16818f 100644 --- a/src/main/java/org/hbp/mip/model/Chart.java +++ b/src/main/java/org/hbp/mip/model/Chart.java @@ -9,6 +9,7 @@ import java.util.LinkedList; import java.util.List; @Entity +@Table(name = "chart_mip") public class Chart { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/ChartConfigSet.java b/src/main/java/org/hbp/mip/model/ChartConfigSet.java index 040f240c6fb4a14033c15f6c4271127b41328592..89e19dfc36cb01abee0f97488d2fa84f9800809f 100644 --- a/src/main/java/org/hbp/mip/model/ChartConfigSet.java +++ b/src/main/java/org/hbp/mip/model/ChartConfigSet.java @@ -4,12 +4,10 @@ package org.hbp.mip.model; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import javax.persistence.*; @Entity +@Table(name = "chart_config_set_mip") public class ChartConfigSet { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Dataset.java b/src/main/java/org/hbp/mip/model/Dataset.java index 38f042443a1ca3a8309ac814c129ee959b37aef7..7a1942ad3b4a9162981b22b4156bf5f321352210 100644 --- a/src/main/java/org/hbp/mip/model/Dataset.java +++ b/src/main/java/org/hbp/mip/model/Dataset.java @@ -9,6 +9,7 @@ import java.util.Date; import java.util.List; @Entity +@Table(name = "dataset_mip") public class Dataset { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Filter.java b/src/main/java/org/hbp/mip/model/Filter.java index 3c24be73fd83a07976aed39679219d753346cbbf..ca62dffb4a3ec2ef9330002f9e2b142227373910 100644 --- a/src/main/java/org/hbp/mip/model/Filter.java +++ b/src/main/java/org/hbp/mip/model/Filter.java @@ -7,6 +7,7 @@ package org.hbp.mip.model; import javax.persistence.*; @Entity +@Table(name = "filter_mip") public class Filter { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Group.java b/src/main/java/org/hbp/mip/model/Group.java index 4f9d54b29eb6d5685042e04ef41f6aef0e72793f..cc93b4f534768ced00f93c8252608ffd4b68616f 100644 --- a/src/main/java/org/hbp/mip/model/Group.java +++ b/src/main/java/org/hbp/mip/model/Group.java @@ -9,6 +9,7 @@ import java.util.LinkedList; import java.util.List; @Entity +@Table(name = "group_mip") public class Group { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Model.java b/src/main/java/org/hbp/mip/model/Model.java index dbd119ebdb95ee6f0366f30ae97283ec13ad7336..36600b41901107ed3e0530ba4e6823feba1b2f96 100644 --- a/src/main/java/org/hbp/mip/model/Model.java +++ b/src/main/java/org/hbp/mip/model/Model.java @@ -8,6 +8,7 @@ import javax.persistence.*; import java.util.Date; @Entity +@Table(name = "model_mip") public class Model { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Query.java b/src/main/java/org/hbp/mip/model/Query.java index 6d81619b9745527ac98c1e9abfac1419537d361e..2ece36a7594507f4c43634bf5f2c69a80e349d67 100644 --- a/src/main/java/org/hbp/mip/model/Query.java +++ b/src/main/java/org/hbp/mip/model/Query.java @@ -9,6 +9,7 @@ import java.util.LinkedList; import java.util.List; @Entity +@Table(name = "query_mip") public class Query { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Tag.java b/src/main/java/org/hbp/mip/model/Tag.java index 48ad3e7079181bb90a21343ec60886ef0aa8c21b..bfe8f74b88e41b6266b63a3e555a64e5a00174a1 100644 --- a/src/main/java/org/hbp/mip/model/Tag.java +++ b/src/main/java/org/hbp/mip/model/Tag.java @@ -4,12 +4,10 @@ package org.hbp.mip.model; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import javax.persistence.*; @Entity +@Table(name = "tag_mip") public class Tag { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/User.java b/src/main/java/org/hbp/mip/model/User.java index 67b0d38261e2de4dfd64ae3d3e38109eb88c76e8..5e3290a73ada547b40e8c577d7ca39110092857d 100644 --- a/src/main/java/org/hbp/mip/model/User.java +++ b/src/main/java/org/hbp/mip/model/User.java @@ -5,10 +5,12 @@ package org.hbp.mip.model; import javax.persistence.*; +import java.security.Principal; import java.util.LinkedList; import java.util.List; @Entity +@Table(name = "user_mip") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -22,7 +24,7 @@ public class User { private String phone; private String birthday; private String gender; - @ElementCollection + @ElementCollection(fetch = FetchType.EAGER) private List<String> languages; private String city; private String country; @@ -31,12 +33,18 @@ public class User { private boolean isActive; private String apikey; private String team; - @ElementCollection + @ElementCollection(fetch = FetchType.EAGER) private List<String> roles; public User() { } + public User(Principal principal) + { + this.username = principal.getName(); + this.fullname = this.username; + } + public Long getId() { return id; } diff --git a/src/main/java/org/hbp/mip/model/Value.java b/src/main/java/org/hbp/mip/model/Value.java index f5afddc685fba8177d6085414a8b9d82b98a5fd3..845dd3d9d21bf99316da1496524fc5a2eafb0de0 100644 --- a/src/main/java/org/hbp/mip/model/Value.java +++ b/src/main/java/org/hbp/mip/model/Value.java @@ -4,12 +4,10 @@ package org.hbp.mip.model; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import javax.persistence.*; @Entity +@Table(name = "value_mip") public class Value { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/org/hbp/mip/model/Variable.java b/src/main/java/org/hbp/mip/model/Variable.java index 9439aabee953e5bba31489a9eb8c42884aaf431c..a19fe9d57a71e6e87f94c918ec6fbbbcece54860 100644 --- a/src/main/java/org/hbp/mip/model/Variable.java +++ b/src/main/java/org/hbp/mip/model/Variable.java @@ -9,6 +9,7 @@ import java.util.LinkedList; import java.util.List; @Entity +@Table(name = "variable_mip") public class Variable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY)