package com.atlassian.labs.speakeasy.descriptor.external; import com.atlassian.plugin.PluginParseException; import com.atlassian.plugin.web.Condition; import com.atlassian.sal.api.user.UserManager; import org.osgi.framework.BundleContext; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.Map; import java.util.Set; import static java.util.Arrays.asList; import static java.util.Collections.emptySet; /** * */ public class UserScopedCondition implements Condition { private Set<String> users; private final UserManager userManager; public UserScopedCondition(BundleContext bundleContext) { this.userManager = (UserManager) bundleContext.getService(bundleContext.getServiceReference(UserManager.class.getName())); } public void init(Map<String, String> props) throws PluginParseException { String userString = props.get("users"); users = new HashSet<String>((userString != null && userString.length() > 0) ? asList(userString.split("\\|")) : Collections.<String>emptySet()); } public boolean shouldDisplay(Map<String, Object> stringObjectMap) { return users.contains(userManager.getRemoteUsername()); } }