aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/web
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/traccar/web')
-rw-r--r--src/org/traccar/web/DeviceServlet.java24
1 files changed, 24 insertions, 0 deletions
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);
+ }
+
}