package jenkins.security.s2m;
import hudson.Extension;
import hudson.remoting.Callable;
import org.jenkinsci.Symbol;
import org.jenkinsci.remoting.Role;
import org.jenkinsci.remoting.RoleSensitive;
import javax.inject.Inject;
import java.util.Collection;
/**
* Whitelists {@link Callable}s that are approved by the admins.
*
*
* <p>
* Smaller ordinal value allows other programmable {@link CallableWhitelist} to accept/reject
* {@link Callable}s without bothering the admins. This impl should be used only for those
* {@link Callable}s that our program does not have any idea for.
*
* @author Kohsuke Kawaguchi
*/
@Extension(ordinal=-100) @Symbol("admin")
public class AdminCallableWhitelist extends CallableWhitelist {
@Inject
AdminWhitelistRule rule;
@Override
public boolean isWhitelisted(RoleSensitive subject, Collection<Role> expected, Object context) {
return rule.isWhitelisted(subject,expected,context);
}
}