diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2013-02-16 17:36:19 +1300 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2013-02-16 17:36:19 +1300 |
commit | 92bd56c8bb8a63cf34a19a6197d988ffc671de6c (patch) | |
tree | 006f3de4d7e7b30b033f9ed1d0765b2265443383 /src/org/traccar/web | |
parent | 6d48729efb4bd1ac34bba003a8a4313a70a02cce (diff) | |
download | etbsa-traccar-web-92bd56c8bb8a63cf34a19a6197d988ffc671de6c.tar.gz etbsa-traccar-web-92bd56c8bb8a63cf34a19a6197d988ffc671de6c.tar.bz2 etbsa-traccar-web-92bd56c8bb8a63cf34a19a6197d988ffc671de6c.zip |
Add admin user
Diffstat (limited to 'src/org/traccar/web')
-rw-r--r-- | src/org/traccar/web/server/model/DataServiceImpl.java | 30 | ||||
-rw-r--r-- | src/org/traccar/web/shared/model/User.java | 11 |
2 files changed, 36 insertions, 5 deletions
diff --git a/src/org/traccar/web/server/model/DataServiceImpl.java b/src/org/traccar/web/server/model/DataServiceImpl.java index 287a568..3df7b68 100644 --- a/src/org/traccar/web/server/model/DataServiceImpl.java +++ b/src/org/traccar/web/server/model/DataServiceImpl.java @@ -61,6 +61,22 @@ public class DataServiceImpl extends RemoteServiceServlet implements DataService } entityManagerFactory = Persistence.createEntityManagerFactory(persistenceUnit); + + // Create Administrator account + EntityManager entityManager = entityManagerFactory.createEntityManager(); + try { + TypedQuery<User> query = entityManager.createQuery("SELECT x FROM User x WHERE x.login = 'admin'", User.class); + List<User> results = query.getResultList(); + if (results.isEmpty()) { + User user = new User(); + user.setLogin("admin"); + user.setPassword("admin"); + user.setAdmin(true); + createUser(user); + } + } finally { + entityManager.close(); + } } @Override @@ -115,17 +131,21 @@ public class DataServiceImpl extends RemoteServiceServlet implements DataService @Override public boolean register(String login, String password) { + User user = new User(); + user.setLogin(login); + user.setPassword(password); + createUser(user); + setUser(user); + return true; + } + + private void createUser(User user) { EntityManager entityManager = entityManagerFactory.createEntityManager(); try { - User user = new User(); - user.setLogin(login); - user.setPassword(password); entityManager.getTransaction().begin(); try { entityManager.persist(user); entityManager.getTransaction().commit(); - setUser(user); - return true; } catch (RuntimeException e) { entityManager.getTransaction().rollback(); throw e; diff --git a/src/org/traccar/web/shared/model/User.java b/src/org/traccar/web/shared/model/User.java index 89bebc0..9a67c6d 100644 --- a/src/org/traccar/web/shared/model/User.java +++ b/src/org/traccar/web/shared/model/User.java @@ -40,6 +40,7 @@ public class User implements Serializable, Cloneable { id = user.id; login = user.login; password = user.password; + admin = user.admin; } @Id @@ -71,6 +72,16 @@ public class User implements Serializable, Cloneable { return password; } + private boolean admin; + + public void setAdmin(boolean admin) { + this.admin = admin; + } + + public boolean getAdmin() { + return admin; + } + @OneToMany(fetch = FetchType.EAGER) private List<Device> devices = new LinkedList<Device>(); |