1 package org.itracker.persistence.dao;
2
3 import java.util.List;
4
5 import org.hibernate.HibernateException;
6 import org.hibernate.Query;
7 import org.itracker.model.Permission;
8 import org.itracker.model.Project;
9 import org.itracker.model.User;
10
11 public class PermissionDAOImpl extends BaseHibernateDAOImpl<Permission>
12 implements PermissionDAO {
13
14 @SuppressWarnings("unchecked")
15 public List<Permission> findByUserId(Integer userId) {
16 List<Permission> permissions;
17
18 if (getSession().get(User.class, userId) == null) {
19 throw new NoSuchEntityException("User " + userId + " not found.");
20 }
21
22 try {
23 Query query = getSession().getNamedQuery(
24 "PermissionsByUserQuery");
25 query.setInteger("userId", userId);
26 permissions = query.list();
27 } catch (HibernateException ex) {
28 throw convertHibernateAccessException(ex);
29 }
30 return permissions;
31 }
32
33 @SuppressWarnings("unchecked")
34 public List<Permission> findByProjectIdAndPermission(Integer projectId,
35 int permissionType) {
36 List<Permission> permissions;
37
38 if (getSession().get(Project.class, projectId) == null) {
39 throw new NoSuchEntityException("Project " + projectId + " not found.");
40 }
41
42 try {
43 Query query = getSession().getNamedQuery(
44 "PermissionsByProjectAndTypeQuery");
45 query.setInteger("projectId", projectId);
46 query.setInteger("permissionType", permissionType);
47 permissions = query.list();
48 } catch (HibernateException ex) {
49 throw convertHibernateAccessException(ex);
50 }
51 return permissions;
52 }
53
54 }