webidor/src/main/java/cz/xelfi/quoridor/webidor/resources/Games.java
branchstrict-games-access
changeset 162 c1bfbe98152b
parent 131 19e81456eef2
child 164 2949998db4f6
     1.1 --- a/webidor/src/main/java/cz/xelfi/quoridor/webidor/resources/Games.java	Sun Oct 25 14:24:58 2009 +0100
     1.2 +++ b/webidor/src/main/java/cz/xelfi/quoridor/webidor/resources/Games.java	Tue Dec 08 15:34:50 2009 +0100
     1.3 @@ -131,10 +131,25 @@
     1.4      @Path("{id}")
     1.5      @Produces({ MediaType.APPLICATION_JSON, MediaType.TEXT_XML })
     1.6      public Game getBoardInfo(
     1.7 +        @QueryParam("loginID") @DefaultValue("") String loginId,
     1.8          @PathParam("id") String id,
     1.9          @QueryParam("move") @DefaultValue("-1") int move
    1.10      ) {
    1.11 -        return findGame(id, move);
    1.12 +        Game g = findGame(id, move);
    1.13 +        if (g.getId().getStatus().isInProgress()) {
    1.14 +            return g;
    1.15 +        }
    1.16 +        String logUser = quoridor.isLoggedIn(loginId);
    1.17 +        if (logUser == null) {
    1.18 +            throw new WebApplicationException(Status.UNAUTHORIZED);
    1.19 +        }
    1.20 +        if (logUser.equals(g.getId().getWhite())) {
    1.21 +            return g;
    1.22 +        }
    1.23 +        if (logUser.equals(g.getId().getBlack())) {
    1.24 +            return g;
    1.25 +        }
    1.26 +        throw new WebApplicationException(Status.UNAUTHORIZED);
    1.27      }
    1.28  
    1.29      @PUT