Commit 72a4b117 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

refactor flags per user

parent 3c69ee50
...@@ -56,18 +56,14 @@ public class TasksRepository extends Repository<Task> ...@@ -56,18 +56,14 @@ public class TasksRepository extends Repository<Task>
.asList(); .asList();
} }
//todo: refactor? public Map<Integer, List<String>> getUserFlagsHashes(String username)
public Map<List<String>, Integer> getUserFlagsHashes(String username)
{ {
return this.getAll().stream() return getAll().stream()
.collect(Collectors.toMap( .collect(Collectors.toMap(
task -> { Task::getLevel,
List<String> collect = task.getFlags().stream() task -> task.getFlags().stream()
.map(flag -> calculateHashValue(username, flag.getValue())) .map(flag -> calculateHashValue(username, flag.getValue()))
.collect(Collectors.toList()); .collect(Collectors.toList())
return collect;
},
Task::getLevel
)); ));
} }
......
...@@ -4,7 +4,6 @@ import com.telephoners.krakyournet.ctf.beans.User; ...@@ -4,7 +4,6 @@ import com.telephoners.krakyournet.ctf.beans.User;
import com.telephoners.krakyournet.ctf.beans.tasks.Task; import com.telephoners.krakyournet.ctf.beans.tasks.Task;
import com.telephoners.krakyournet.ctf.repositories.TasksRepository; import com.telephoners.krakyournet.ctf.repositories.TasksRepository;
import io.dropwizard.auth.Auth; import io.dropwizard.auth.Auth;
import org.apache.commons.collections.MapUtils;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
...@@ -15,7 +14,6 @@ import javax.ws.rs.Produces; ...@@ -15,7 +14,6 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import java.util.List; import java.util.List;
import java.util.Map;
@Singleton @Singleton
@Path(value = "/tasks") @Path(value = "/tasks")
...@@ -41,8 +39,9 @@ public class TasksResource ...@@ -41,8 +39,9 @@ public class TasksResource
public Response getUserFlags(@Auth User user, final @PathParam("username") String username) public Response getUserFlags(@Auth User user, final @PathParam("username") String username)
{ {
if (user.isAdmin()) { if (user.isAdmin()) {
Map<List<String>, Integer> userFlagsHashes = tasksRepository.getUserFlagsHashes(username); return Response.ok()
return Response.ok().entity(MapUtils.invertMap(userFlagsHashes)).build(); .entity(tasksRepository.getUserFlagsHashes(username))
.build();
} }
return Response.status(Response.Status.UNAUTHORIZED).build(); return Response.status(Response.Status.UNAUTHORIZED).build();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment