package codeine.permissions;
import java.util.Set;
import com.google.common.collect.Sets;
public class UserProjectPermissions extends AbstractUserPermissions{
private String username;
private boolean can_config;
private Set<String> can_command = Sets.newHashSet();
private boolean can_read;
public UserProjectPermissions(String username, boolean can_config, Set<String> can_command, boolean can_read) {
super();
this.username = username;
this.can_config = can_config;
this.can_command = can_command;
this.can_read = can_read;
}
/**
* @return can_read configured value
*/
public boolean can_read() {
return can_read;
}
/**
* @return can_read resolved value
*/
public boolean canRead() {
return can_read || canCommand();
}
/**
* @return true if can command any node (resolved)
*/
public boolean canCommand() {
return !can_command.isEmpty() || canConfigure();
}
/**
* @return can_command configured value
*/
public Set<String> can_command() {
return can_command;
}
/**
* @return can_config configured value
*/
public boolean can_config() {
return can_config;
}
public boolean canConfigure() {
return can_config;
}
public String username() {
return username;
}
public boolean canCommand(String nodeAlias) {
return isSetMatch(can_command, nodeAlias) || canConfigure();
}
}