diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2016-11-19 10:23:24 +1300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-19 10:23:24 +1300 |
commit | b0aa4698e95658f57ec2d3e0ed4f3fe0db8500a2 (patch) | |
tree | 3b8b691bb01298ba6207d18ce761bd9ee6537971 /src/org/traccar/api | |
parent | 3eca9acd6e6a160df8f7b86150429c3d7c09b0c3 (diff) | |
parent | e21cc32bb74d998246b52faaf49b6ea742e4d6e3 (diff) | |
download | trackermap-server-b0aa4698e95658f57ec2d3e0ed4f3fe0db8500a2.tar.gz trackermap-server-b0aa4698e95658f57ec2d3e0ed4f3fe0db8500a2.tar.bz2 trackermap-server-b0aa4698e95658f57ec2d3e0ed4f3fe0db8500a2.zip |
Merge pull request #2552 from Abyss777/token2
Implement users tokens
Diffstat (limited to 'src/org/traccar/api')
-rw-r--r-- | src/org/traccar/api/resource/SessionResource.java | 9 | ||||
-rw-r--r-- | src/org/traccar/api/resource/UserResource.java | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/org/traccar/api/resource/SessionResource.java b/src/org/traccar/api/resource/SessionResource.java index a61738c7e..db8a5c837 100644 --- a/src/org/traccar/api/resource/SessionResource.java +++ b/src/org/traccar/api/resource/SessionResource.java @@ -29,6 +29,7 @@ import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @@ -48,7 +49,7 @@ public class SessionResource extends BaseResource { @PermitAll @GET - public User get() throws SQLException { + public User get(@QueryParam("token") String token) throws SQLException { Long userId = (Long) request.getSession().getAttribute(USER_ID_KEY); if (userId == null) { Cookie[] cookies = request.getCookies(); @@ -69,6 +70,12 @@ public class SessionResource extends BaseResource { userId = user.getId(); request.getSession().setAttribute(USER_ID_KEY, userId); } + } else if (token != null) { + User user = Context.getPermissionsManager().getUserByToken(request.getParameter("token")); + if (user != null) { + userId = user.getId(); + request.getSession().setAttribute(USER_ID_KEY, userId); + } } } diff --git a/src/org/traccar/api/resource/UserResource.java b/src/org/traccar/api/resource/UserResource.java index c6e84c918..2ff1639f6 100644 --- a/src/org/traccar/api/resource/UserResource.java +++ b/src/org/traccar/api/resource/UserResource.java @@ -66,7 +66,9 @@ public class UserResource extends BaseResource { || old.getAdmin() != entity.getAdmin() || old.getReadonly() != entity.getReadonly() || old.getDisabled() != entity.getDisabled() - || old.getDeviceLimit() != entity.getDeviceLimit()) { + || old.getDeviceLimit() != entity.getDeviceLimit() + || old.getToken() == null && entity.getToken() != null + || old.getToken() != null && !old.getToken().equals(entity.getToken())) { Context.getPermissionsManager().checkAdmin(getUserId()); } else { Context.getPermissionsManager().checkUser(getUserId(), entity.getId()); |