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