package org.togglz.servlet.test.user.thread;
import org.togglz.core.Feature;
import org.togglz.core.activation.UsernameActivationStrategy;
import org.togglz.core.manager.TogglzConfig;
import org.togglz.core.repository.FeatureState;
import org.togglz.core.repository.StateRepository;
import org.togglz.core.repository.mem.InMemoryStateRepository;
import org.togglz.core.user.UserProvider;
import org.togglz.core.user.thread.ThreadLocalUserProvider;
public class ThreadBasedUsersConfiguration implements TogglzConfig {
@Override
public Class<? extends Feature> getFeatureClass() {
return UserDependentFeature.class;
}
@Override
public StateRepository getStateRepository() {
InMemoryStateRepository repository = new InMemoryStateRepository();
repository.setFeatureState(new FeatureState(UserDependentFeature.DISABLED, false));
repository.setFeatureState(new FeatureState(UserDependentFeature.ENABLED_FOR_ALL, true));
repository.setFeatureState(new FeatureState(UserDependentFeature.ENABLED_FOR_CK, true)
.setStrategyId(UsernameActivationStrategy.ID)
.setParameter(UsernameActivationStrategy.PARAM_USERS, "ck"));
return repository;
}
@Override
public UserProvider getUserProvider() {
return new ThreadLocalUserProvider();
}
}