Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 1020 → Rev 1021

/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailboxManager.java
290,33 → 290,69
Integer[] sortingKeys, User editor)
throws ModelException
{
if(editor.isSuperuser()) {
return HibernateUtil.pageableList(info, pageSize, pageNumber,
"select {mb.*}, {d.*}, {o.*}, {su.*}"
+ " from Mailbox mb left join fetch mb.domain as d"
+ " left join fetch mb.owner as o left join fetch mb.systemUser as su"
+ HibernateUtil.formOrderClause(sortingKeys, sortKeys),
new String[] { "mb", "d", "o", "su" },
new Class[] { Mailbox.class, InetDomain.class, User.class, SystemUser.class },
null,
null);
try {
if(editor.isSuperuser()) {
if(info != null) {
info.setSize(((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from Mailbox").next()).intValue());
}
 
return HibernateUtil.pageableList(pageSize, pageNumber,
"select {mb.*}, {d.*}, {o.*}, {su.*}"
+ " from mailboxes as mb"
+ " left join domains as d on mb.domain = d.id"
+ " left join users as o on mb.owner = o.id"
+ " left join systemusers as su on mb.systemUser = su.id"
+ HibernateUtil.formOrderClause(sortingKeys, sortKeys),
Mailbox.class,
new String[] { "mb", "d", "o", "su" },
new Class[] { Mailbox.class, InetDomain.class, User.class, SystemUser.class },
null,
null);
}
else {
if(info != null) {
List countlist = HibernateUtil.sqlQuery(
"select count(*) from ("
+ " select mb.id from mailboxes mb"
+ " where mb.owner=?"
+ " union"
+ " select mb.id from mailboxes mb"
+ " left join domains as d on mb.domain = d.id"
+ " where d.owner=?"
+ ") as count_table",
new Object[] { editor.getId(), editor.getId() });
 
info.setSize(((Long)countlist.get(0)).intValue());
}
 
return HibernateUtil.pageableList(pageSize, pageNumber,
"select {mb.*}, {d.*}, {o.*}, {su.*}"
+ " from mailboxes as mb"
+ " left join domains as d on mb.domain = d.id"
+ " left join users as o on mb.owner = o.id"
+ " left join systemusers as su on mb.systemUser = su.id"
+ " where mb.owner=?"
+ " union"
+ " select {mb.*}, {d.*}, {o.*}, {su.*}"
+ " from mailboxes as mb"
+ " left join domains as d on mb.domain = d.id"
+ " left join users as o on mb.owner = o.id"
+ " left join systemusers as su on mb.systemUser = su.id"
+ " where d.owner=?"
+ HibernateUtil.formOrderClause(sortingKeys, sortKeys),
Mailbox.class,
new String[] { "mb", "d", "o", "su" },
new Class[] { Mailbox.class, InetDomain.class, User.class, SystemUser.class },
new Object[] { editor, editor },
new Type[] { Hibernate.entity(User.class), Hibernate.entity(User.class) });
}
}
else {
return HibernateUtil.pageableList(info, pageSize, pageNumber,
"select {mb.*}, {d.*}, {o.*}, {su.*}"
+ " from Mailbox mb left join fetch mb.domain as d"
+ " left join fetch mb.owner as o left join fetch mb.systemUser as su"
+ " where mb.owner=?"
+ " union"
+ " select {mb.*}, {d.*}, {o.*}, {su.*}"
+ " from Mailbox mb left join fetch mb.domain as d"
+ " left join fetch mb.owner as o left join fetch mb.systemUser as su"
+ " where d.owner=?"
+ HibernateUtil.formOrderClause(sortingKeys, sortKeys),
new String[] { "mb", "d", "o", "su" },
new Class[] { Mailbox.class, InetDomain.class, User.class, SystemUser.class },
new Object[] { editor, editor },
new Type[] { Hibernate.entity(User.class), Hibernate.entity(User.class) });
catch(HibernateException ex)
{
ex.printStackTrace();
 
throw new ModelException(ex);
}
}
 
493,8 → 529,8
protected static Map sortKeys = new HashMap();
 
static {
sortKeys.put(SORT_LOGIN, "mb.login");
sortKeys.put(SORT_DOMAIN, "d.name");
sortKeys.put(SORT_LOGIN, "login0_");
sortKeys.put(SORT_DOMAIN, "name1_");
}
 
public static final Comparator LOGIN_COMPARATOR = new LoginComparator();