3,6 → 3,7 |
import java.util.*; |
import net.sf.hibernate.*; |
import net.sf.hibernate.type.Type; |
import ak.hostadmiral.util.CollectionUtils; |
import ak.hostadmiral.util.HibernateUtil; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.util.ModelSecurityException; |
282,13 → 283,22 |
{ |
try { |
if(editor.isSuperuser()) |
return HibernateUtil.currentSession().find("from Mailbox"); |
return HibernateUtil.currentSession().find( |
"select mb from Mailbox mb left join fetch mb.domain as d" |
+ " left join fetch mb.owner"); |
else |
return HibernateUtil.currentSession().find( |
"select mb from Mailbox mb left join mb.domain as d" |
+ " where d.owner=? or mb.owner=?", |
new Object[] { editor, editor }, |
new Type[] { Hibernate.entity(User.class), Hibernate.entity(User.class) } ); |
// FIXME: any problems for big lists or by pages? |
return CollectionUtils.addUnique( |
HibernateUtil.currentSession().find( |
"select mb from Mailbox mb left join fetch mb.domain as d" |
+ " left join fetch mb.owner" |
+ " where mb.owner=?", |
new Object[] { editor }, new Type[] { Hibernate.entity(User.class) } ), |
HibernateUtil.currentSession().find( |
" select mb from Mailbox mb left join fetch mb.domain as d" |
+ " left join fetch mb.owner" |
+ " where d.owner=?", |
new Object[] { editor }, new Type[] { Hibernate.entity(User.class) } )); |
} |
catch(HibernateException ex) |
{ |