/** * This file is part of alf.io. * * alf.io is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * alf.io is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with alf.io. If not, see <http://www.gnu.org/licenses/>. */ package alfio.repository.user; import alfio.model.user.Authority; import ch.digitalfondue.npjt.*; import java.util.List; import java.util.Set; @QueryRepository public interface AuthorityRepository { String checkRole = "select exists(select * from authority where username = :username and role in (:roles)) as res"; @Query(checkRole) @QueriesOverride({ @QueryOverride(value = checkRole + " from (values(0))", db = "HSQLDB") }) boolean checkRole(@Bind("username") String username, @Bind("roles") Set<String> roles); @Query("SELECT * from authority where username = :username") List<Authority> findGrantedAuthorities(@Bind("username") String username); @Query("INSERT INTO authority(username, role) VALUES (:username, :role)") int create(@Bind("username") String username, @Bind("role") String role); @Query("DELETE from authority where username = :username") int revokeAll(@Bind("username") String username); }