Newer
Older
package it.inaf.ia2.vollt;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.stream.Collectors;
import tap.db.QueryExecutor;
import uws.job.user.JobOwner;
public class PrivateRowsQueryExecutor extends QueryExecutor {
@Override
public ResultSet executeQuery(Statement statement, String sql, JobOwner jobOwner) throws SQLException {
if (jobOwner instanceof CustomJobOwner) {
CustomJobOwner user = (CustomJobOwner) jobOwner;
statement.execute("SET my.tap_groups = \"{"
+ String.join(",", user.getGroups().stream()
.map(g -> "'" + g.replace("'", "''") + "'")
.collect(Collectors.toList()))
+ "}\"");
}
return super.executeQuery(statement, sql, jobOwner);
}
}