aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/org/traccar/database/DataManager.java8
-rw-r--r--src/org/traccar/web/DeviceServlet.java24
2 files changed, 32 insertions, 0 deletions
diff --git a/src/org/traccar/database/DataManager.java b/src/org/traccar/database/DataManager.java
index e249a7591..af2dd559a 100644
--- a/src/org/traccar/database/DataManager.java
+++ b/src/org/traccar/database/DataManager.java
@@ -321,6 +321,14 @@ public class DataManager implements IdentityManager {
AsyncServlet.sessionRefreshUser(userId);
}
+ public void unlinkDevice(long userId, long deviceId) throws SQLException {
+ QueryBuilder.create(dataSource, getQuery("database.unlinkDevice"))
+ .setLong("userId", userId)
+ .setLong("deviceId", deviceId)
+ .executeUpdate();
+ AsyncServlet.sessionRefreshUser(userId);
+ }
+
public Collection<Position> getPositions(long userId, long deviceId, Date from, Date to) throws SQLException {
return QueryBuilder.create(dataSource, getQuery("database.selectPositions"))
.setLong("deviceId", deviceId)
diff --git a/src/org/traccar/web/DeviceServlet.java b/src/org/traccar/web/DeviceServlet.java
index 1ae94c1d0..8f983ad78 100644
--- a/src/org/traccar/web/DeviceServlet.java
+++ b/src/org/traccar/web/DeviceServlet.java
@@ -38,6 +38,12 @@ public class DeviceServlet extends BaseServlet {
case "/remove":
remove(req, resp);
break;
+ case "/link":
+ link(req, resp);
+ break;
+ case "/unlink":
+ unlink(req, resp);
+ break;
default:
return false;
}
@@ -87,4 +93,22 @@ public class DeviceServlet extends BaseServlet {
sendResponse(resp.getWriter(), true);
}
+ private void link(HttpServletRequest req, HttpServletResponse resp) throws Exception {
+ Context.getPermissionsManager().checkAdmin(getUserId(req));
+ Context.getDataManager().linkDevice(
+ Long.parseLong(req.getParameter("userId")),
+ Long.parseLong(req.getParameter("deviceId")));
+ Context.getPermissionsManager().refresh();
+ sendResponse(resp.getWriter(), true);
+ }
+
+ private void unlink(HttpServletRequest req, HttpServletResponse resp) throws Exception {
+ Context.getPermissionsManager().checkAdmin(getUserId(req));
+ Context.getDataManager().unlinkDevice(
+ Long.parseLong(req.getParameter("userId")),
+ Long.parseLong(req.getParameter("deviceId")));
+ Context.getPermissionsManager().refresh();
+ sendResponse(resp.getWriter(), true);
+ }
+
}