1 package io.getunleash.strategy;
2
3 import static java.util.Arrays.asList;
4
5 import io.getunleash.UnleashContext;
6 import java.util.Map;
7 import java.util.Optional;
8
9 public final class UserWithIdStrategy implements Strategy {
10
11 protected static final String PARAM = "userIds";
12 private static final String STRATEGY_NAME = "userWithId";
13
14 @Override
15 public String getName() {
16 return STRATEGY_NAME;
17 }
18
19 @Override
20 public boolean isEnabled(Map<String, String> parameters) {
21 return false;
22 }
23
24 @Override
25 public boolean isEnabled(Map<String, String> parameters, UnleashContext unleashContext) {
26 return unleashContext
27 .getUserId()
28 .map(
29 currentUserId ->
30 Optional.ofNullable(parameters.get(PARAM))
31 .map(userIdString -> asList(userIdString.split(",\\s?")))
32 .filter(f -> f.contains(currentUserId))
33 .isPresent())
34 .orElse(false);
35 }
36 }
37