aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2013-02-16 17:36:19 +1300
committerAnton Tananaev <anton.tananaev@gmail.com>2013-02-16 17:36:19 +1300
commit92bd56c8bb8a63cf34a19a6197d988ffc671de6c (patch)
tree006f3de4d7e7b30b033f9ed1d0765b2265443383
parent6d48729efb4bd1ac34bba003a8a4313a70a02cce (diff)
downloadetbsa-traccar-web-92bd56c8bb8a63cf34a19a6197d988ffc671de6c.tar.gz
etbsa-traccar-web-92bd56c8bb8a63cf34a19a6197d988ffc671de6c.tar.bz2
etbsa-traccar-web-92bd56c8bb8a63cf34a19a6197d988ffc671de6c.zip
Add admin user
-rw-r--r--src/org/traccar/web/server/model/DataServiceImpl.java30
-rw-r--r--src/org/traccar/web/shared/model/User.java11
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>();