aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2015-04-29 23:29:43 +1200
committerAnton Tananaev <anton.tananaev@gmail.com>2015-04-29 23:29:43 +1200
commit8e6e361eb0e1d4c92b99fa20a70f0fa7b296a466 (patch)
tree9a1a69460652a0da7507c5fc2dec724290e30845
parent2b0610469c10f99dd21393cbbed81a9d0d06b868 (diff)
downloadtraccar-server-8e6e361eb0e1d4c92b99fa20a70f0fa7b296a466.tar.gz
traccar-server-8e6e361eb0e1d4c92b99fa20a70f0fa7b296a466.tar.bz2
traccar-server-8e6e361eb0e1d4c92b99fa20a70f0fa7b296a466.zip
Check if user is logged in
-rw-r--r--src/org/traccar/http/MainServlet.java6
-rw-r--r--web/Application.js15
-rw-r--r--web/Login.js2
3 files changed, 20 insertions, 3 deletions
diff --git a/src/org/traccar/http/MainServlet.java b/src/org/traccar/http/MainServlet.java
index 10920accb..4dc02e81f 100644
--- a/src/org/traccar/http/MainServlet.java
+++ b/src/org/traccar/http/MainServlet.java
@@ -53,6 +53,8 @@ public class MainServlet extends HttpServlet {
resp.sendError(HttpServletResponse.SC_BAD_REQUEST);
} else if (command.equals("/async")) {
async(req.startAsync());
+ } else if (command.equals("/session")) {
+ session(req, resp);
} else if (command.equals("/login")) {
login(req, resp);
} else if (command.equals("/logout")) {
@@ -211,6 +213,10 @@ public class MainServlet extends HttpServlet {
}
}
+ private void session(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ resp.getWriter().println("{ success: true, session: " + (req.getSession().getAttribute(USER_ID) != null) + " }");
+ }
+
private void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
req.getSession().setAttribute(USER_ID,
diff --git a/web/Application.js b/web/Application.js
index c522d50f7..594ce0635 100644
--- a/web/Application.js
+++ b/web/Application.js
@@ -37,11 +37,22 @@ Ext.Loader.loadScript({
name: 'Traccar',
requires: [
'Styles',
- 'Login'
+ 'Login',
+ 'MainView'
],
launch: function() {
- Ext.create('Login').show();
+ Ext.Ajax.request({
+ url: '/api/session',
+ success: function(response) {
+ var result = Ext.decode(response.responseText);
+ if (result.success && result.session) {
+ Ext.create('MainView', { renderTo: document.body });
+ } else {
+ Ext.create('Login').show();
+ }
+ }
+ })
}
});
}
diff --git a/web/Login.js b/web/Login.js
index 6fef9ce9d..871bef17b 100644
--- a/web/Login.js
+++ b/web/Login.js
@@ -65,7 +65,7 @@ Ext.define('Login', {
closable: false,
items: [{ xtype: 'login-form' }],
-
+
submit: function() {
var win = this;
var form = this.down('form').getForm();