2019-01-23 12:33:34 +01:00
|
|
|
package sonia.scm.security;
|
|
|
|
|
|
2019-01-29 10:25:12 +01:00
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
|
|
|
2019-01-23 12:33:34 +01:00
|
|
|
import java.util.Collection;
|
|
|
|
|
import java.util.Collections;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
|
|
|
|
|
public class RepositoryRole {
|
|
|
|
|
|
|
|
|
|
private final String name;
|
|
|
|
|
private final Collection<String> verbs;
|
|
|
|
|
|
|
|
|
|
public RepositoryRole(String name, Collection<String> verbs) {
|
|
|
|
|
this.name = name;
|
|
|
|
|
this.verbs = verbs;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String getName() {
|
|
|
|
|
return name;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Collection<String> getVerbs() {
|
|
|
|
|
return Collections.unmodifiableCollection(verbs);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String toString() {
|
|
|
|
|
return "Role " + name + " (" + String.join(", ", verbs) + ")";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean equals(Object o) {
|
|
|
|
|
if (this == o) return true;
|
|
|
|
|
if (!(o instanceof RepositoryRole)) return false;
|
|
|
|
|
RepositoryRole that = (RepositoryRole) o;
|
|
|
|
|
return name.equals(that.name) &&
|
2019-01-29 10:25:12 +01:00
|
|
|
CollectionUtils.isEqualCollection(this.verbs, that.verbs);
|
2019-01-23 12:33:34 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public int hashCode() {
|
2019-01-29 10:25:12 +01:00
|
|
|
return Objects.hash(name, verbs.size());
|
2019-01-23 12:33:34 +01:00
|
|
|
}
|
|
|
|
|
}
|