package com.github.andreptb.jenkins.security;
import com.github.andreptb.jenkins.security.model.GitLabACL;
import hudson.Extension;
import hudson.model.Descriptor;
import hudson.model.Job;
import hudson.security.ACL;
import hudson.security.AuthorizationStrategy;
import org.kohsuke.stapler.DataBoundConstructor;
import javax.annotation.Nonnull;
import java.util.Collection;
import java.util.Collections;
public class GitLabAuthorizationStrategy extends AuthorizationStrategy {
@DataBoundConstructor
public GitLabAuthorizationStrategy() {
}
@Nonnull
@Override
public ACL getACL(@Nonnull Job<?, ?> project) {
return new GitLabACL(project);
}
@Nonnull
@Override
public ACL getRootACL() {
return new GitLabACL(null);
}
@Nonnull
@Override
public Collection<String> getGroups() {
return Collections.emptyList();
}
@Extension
public static final class DescriptorImpl extends Descriptor<AuthorizationStrategy> {
/**
* Gives the name to be displayed by the Jenkins view in the security configuration page.
*
* @return the display name
*/
public String getDisplayName() {
return "GitLab permissions";
}
}
}