Fix search criteria to support searching both specific entityType and *.

This commit is contained in:
Min Chen 2013-10-08 14:50:46 -07:00
parent 11fe1f527a
commit 9cd1a95327
2 changed files with 8 additions and 5 deletions

View File

@ -25,8 +25,8 @@ import com.cloud.utils.db.GenericDao;
public interface AclRolePermissionDao extends GenericDao<AclRolePermissionVO, Long> {
List<AclRolePermissionVO> findByRoleAndEntity(long roleId, String entityType, AccessType accessType);
List<AclRolePermissionVO> listByRoleAndEntity(long roleId, String entityType, AccessType accessType);
List<AclRolePermissionVO> findByRole(long roleId);
List<AclRolePermissionVO> listByRole(long roleId);
}

View File

@ -45,7 +45,9 @@ public class AclRolePermissionDaoImpl extends GenericDaoBase<AclRolePermissionVO
findByRoleEntity = createSearchBuilder();
findByRoleEntity.and("roleId", findByRoleEntity.entity().getAclRoleId(), SearchCriteria.Op.EQ);
findByRoleEntity.and("entityType", findByRoleEntity.entity().getEntityType(), SearchCriteria.Op.EQ);
findByRoleEntity.and().op("entityType", findByRoleEntity.entity().getEntityType(), SearchCriteria.Op.EQ);
findByRoleEntity.or("entityTypeStar", findByRoleEntity.entity().getEntityType(), SearchCriteria.Op.EQ);
findByRoleEntity.cp();
findByRoleEntity.and("accessType", findByRoleEntity.entity().getAccessType(), SearchCriteria.Op.EQ);
findByRoleEntity.done();
@ -53,16 +55,17 @@ public class AclRolePermissionDaoImpl extends GenericDaoBase<AclRolePermissionVO
}
@Override
public List<AclRolePermissionVO> findByRoleAndEntity(long roleId, String entityType, AccessType accessType) {
public List<AclRolePermissionVO> listByRoleAndEntity(long roleId, String entityType, AccessType accessType) {
SearchCriteria<AclRolePermissionVO> sc = findByRoleEntity.create();
sc.setParameters("roleId", roleId);
sc.setParameters("entityType", entityType);
sc.setParameters("accessType", accessType);
sc.setParameters("entityTypeStar", "*");
return listBy(sc);
}
@Override
public List<AclRolePermissionVO> findByRole(long roleId) {
public List<AclRolePermissionVO> listByRole(long roleId) {
SearchCriteria<AclRolePermissionVO> sc = findByRoleEntity.create();
sc.setParameters("roleId", roleId);
return listBy(sc);