diff options
Diffstat (limited to 'src/org/traccar/web')
-rw-r--r-- | src/org/traccar/web/DeviceServlet.java | 24 |
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); + } + } |