PermissionDAOImpl.java

  1. package org.itracker.persistence.dao;

  2. import org.hibernate.HibernateException;
  3. import org.hibernate.Query;
  4. import org.itracker.model.Permission;
  5. import org.itracker.model.PermissionType;
  6. import org.itracker.model.Project;
  7. import org.itracker.model.User;

  8. import java.util.List;

  9. public class PermissionDAOImpl extends BaseHibernateDAOImpl<Permission>
  10.         implements PermissionDAO {

  11.     @SuppressWarnings("unchecked")
  12.     public List<Permission> findByUserId(Integer userId) {
  13.         List<Permission> permissions;

  14.         if (getSession().get(User.class, userId) == null) {
  15.             throw new NoSuchEntityException("User " + userId + " not found.");
  16.         }

  17.         try {
  18.             Query query = getSession().getNamedQuery(
  19.                     "PermissionsByUserQuery");
  20.             query.setInteger("userId", userId);
  21.             permissions = query.list();
  22.         } catch (HibernateException ex) {
  23.             throw convertHibernateAccessException(ex);
  24.         }
  25.         return permissions;
  26.     }


  27.     @Deprecated
  28.     @SuppressWarnings("unchecked")
  29.     public List<Permission> findByProjectIdAndPermission(Integer projectId,
  30.                                                          int permissionType) {
  31.         return findByProjectIdAndPermission(projectId, PermissionType.valueOf(permissionType));
  32.     }

  33.     @Override
  34.     public List<Permission> findByProjectIdAndPermission(Integer projectId, PermissionType permissionType) {

  35.         List<Permission> permissions;

  36.         if (getSession().get(Project.class, projectId) == null) {
  37.             throw new NoSuchEntityException("Project " + projectId + " not found.");
  38.         }

  39.         try {
  40.             Query query = getSession().getNamedQuery(
  41.                     "PermissionsByProjectAndTypeQuery");
  42.             query.setInteger("projectId", projectId);
  43.             query.setParameter("permissionType", permissionType);
  44.             permissions = query.list();
  45.         } catch (HibernateException ex) {
  46.             throw convertHibernateAccessException(ex);
  47.         }
  48.         return permissions;
  49.     }

  50. }