/hostadmiral/trunk/src/ak/hostadmiral/core/model/SystemUserDeletingListener.java |
---|
0,0 → 1,18 |
package ak.hostadmiral.core.model; |
import java.util.Collection; |
import ak.hostadmiral.util.ModelException; |
public interface SystemUserDeletingListener |
{ |
/** |
* called just before some system user is deleted. |
* |
* @param editor who is doing the operation |
* @param systemUser the system user is being deleting |
* @throws ModelException in case of any errors, no action should be done |
* until this moment in other classes |
*/ |
public void systemUserDeleting(User editor, SystemUser systemUser) |
throws ModelException; |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/UserManager.java |
---|
8,7 → 8,9 |
import ak.hostadmiral.util.ModelSecurityException; |
public class UserManager |
implements UserBeforeDeleteListener |
implements |
UserBeforeDeleteListener, |
UserDeletingListener |
{ |
private static UserManager userManager = null; |
private static boolean registered = false; |
25,7 → 27,7 |
registered = true; |
try { |
/* |
/* FIMXE: do the same for all classes |
HibernateUtil.getConfiguration().addResource( |
"ak/hostadmiral/core/model/User.hbm.xml"); |
HibernateUtil.getConfiguration().addResource( |
47,6 → 49,7 |
private Collection createdListeners = new ArrayList(); |
private Collection modifiedListeners = new ArrayList(); |
private Collection beforeDeleteListeners = new ArrayList(); |
private Collection deletingListeners = new ArrayList(); |
private Collection deletedListeners = new ArrayList(); |
private Map loggedinUsers = new WeakHashMap(); |
53,6 → 56,7 |
private UserManager() |
{ |
addBeforeDeleteListener(this); |
addDeletingListener(this); |
} |
public User create(User editor) |
218,6 → 222,16 |
deletedListeners.remove(listener); |
} |
public void addDeletingListener(UserDeletingListener listener) |
{ |
deletingListeners.add(listener); |
} |
public void removeDeletingListener(UserDeletingListener listener) |
{ |
deletingListeners.remove(listener); |
} |
public Collection beforeDelete(User editor, User user, Collection known) |
throws ModelException |
{ |
240,6 → 254,12 |
if(!user.deleteableBy(editor)) |
throw new ModelSecurityException(); |
// inform deleting listeners |
for(Iterator i = deletingListeners.iterator(); i.hasNext(); ) { |
UserDeletingListener listener = (UserDeletingListener)i.next(); |
listener.userDeleting(editor, user); |
} |
// backup copy |
User oldUser = new User(user); |
251,7 → 271,7 |
throw new ModelException(ex); |
} |
// inform listeners |
// inform delete listeners |
for(Iterator i = deletedListeners.iterator(); i.hasNext(); ) { |
UserDeletedListener listener = (UserDeletedListener)i.next(); |
listener.userDeleted(editor, oldUser); |
373,6 → 393,25 |
return cascade; |
} |
public void userDeleting(User editor, User user) |
throws ModelException |
{ |
Collection subusers; |
try { |
subusers = HibernateUtil.currentSession().find( |
"from User where boss = ?", |
user, Hibernate.entity(User.class) ); |
} |
catch(HibernateException ex) { |
throw new ModelException(ex); |
} |
for(Iterator i = subusers.iterator(); i.hasNext(); ) { |
delete(editor, (User)i.next()); |
} |
} |
public static final Comparator LOGIN_COMPARATOR = new LoginComparator(); |
public static final Comparator LOGINS_TIME_COMPARATOR = new LoginsTimeComparator(); |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailboxDeletingListener.java |
---|
0,0 → 1,18 |
package ak.hostadmiral.core.model; |
import java.util.Collection; |
import ak.hostadmiral.util.ModelException; |
public interface MailboxDeletingListener |
{ |
/** |
* called just before some mailbox is deleted. |
* |
* @param editor who is doing the operation |
* @param mailbox the mailbox is being deleting |
* @throws ModelException in case of any errors, no action should be done |
* until this moment in other classes |
*/ |
public void mailboxDeleting(User editor, Mailbox mailbox) |
throws ModelException; |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailAliasDeletingListener.java |
---|
0,0 → 1,18 |
package ak.hostadmiral.core.model; |
import java.util.Collection; |
import ak.hostadmiral.util.ModelException; |
public interface MailAliasDeletingListener |
{ |
/** |
* called just before some mail alias is deleted. |
* |
* @param editor who is doing the operation |
* @param mailAlias the mail alias is being deleting |
* @throws ModelException in case of any errors, no action should be done |
* until this moment in other classes |
*/ |
public void mailAliasDeleting(User editor, MailAlias mailAlias) |
throws ModelException; |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/InetDomainManager.java |
---|
8,7 → 8,9 |
import ak.hostadmiral.util.ModelSecurityException; |
public class InetDomainManager |
implements UserBeforeDeleteListener |
implements |
UserBeforeDeleteListener, |
UserDeletingListener |
{ |
private static InetDomainManager inetDomainManager = null; |
private static boolean registered = false; |
44,11 → 46,13 |
private Collection createdListeners = new ArrayList(); |
private Collection modifiedListeners = new ArrayList(); |
private Collection beforeDeleteListeners = new ArrayList(); |
private Collection deletingListeners = new ArrayList(); |
private Collection deletedListeners = new ArrayList(); |
private InetDomainManager() |
{ |
UserManager.getInstance().addBeforeDeleteListener(this); |
UserManager.getInstance().addDeletingListener(this); |
} |
public InetDomain create(User editor) |
190,6 → 194,16 |
beforeDeleteListeners.remove(listener); |
} |
public void addDeletingListener(InetDomainDeletingListener listener) |
{ |
deletingListeners.add(listener); |
} |
public void removeDeletingListener(InetDomainDeletingListener listener) |
{ |
deletingListeners.remove(listener); |
} |
public void addDeletedListener(InetDomainDeletedListener listener) |
{ |
deletedListeners.add(listener); |
222,6 → 236,12 |
if(!domain.deleteableBy(editor)) |
throw new ModelSecurityException(); |
// inform deleting listeners |
for(Iterator i = deletingListeners.iterator(); i.hasNext(); ) { |
InetDomainDeletingListener listener = (InetDomainDeletingListener)i.next(); |
listener.inetDomainDeleting(editor, domain); |
} |
// backup copy |
InetDomain oldDomain = new InetDomain(domain); |
235,7 → 255,7 |
throw new ModelException(ex); |
} |
// inform listeners |
// inform deleted listeners |
for(Iterator i = deletedListeners.iterator(); i.hasNext(); ) { |
InetDomainDeletedListener listener = (InetDomainDeletedListener)i.next(); |
listener.inetDomainDeleted(editor, oldDomain); |
309,6 → 329,26 |
return cascade; |
} |
public void userDeleting(User editor, User user) |
throws ModelException |
{ |
Collection domains; |
try { |
domains = HibernateUtil.currentSession().find( |
"from InetDomain where owner = ?", |
user, Hibernate.entity(User.class) ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
for(Iterator i = domains.iterator(); i.hasNext(); ) { |
delete(editor, (InetDomain)i.next()); |
} |
} |
public static final Comparator NAME_COMPARATOR = new NameComparator(); |
private static class NameComparator |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailAliasManager.java |
---|
8,7 → 8,11 |
import ak.hostadmiral.util.ModelSecurityException; |
public class MailAliasManager |
implements UserBeforeDeleteListener |
implements |
UserBeforeDeleteListener, |
UserDeletingListener, |
InetDomainBeforeDeleteListener, |
InetDomainDeletingListener |
{ |
private static MailAliasManager mailAliasManager = null; |
private static boolean registered = false; |
45,6 → 49,7 |
private Collection createdListeners = new ArrayList(); |
private Collection modifiedListeners = new ArrayList(); |
private Collection beforeDeleteListeners = new ArrayList(); |
private Collection deletingListeners = new ArrayList(); |
private Collection deletedListeners = new ArrayList(); |
private MailAliasManager() |
197,6 → 202,16 |
beforeDeleteListeners.remove(listener); |
} |
public void addDeletingListener(MailAliasDeletingListener listener) |
{ |
deletingListeners.add(listener); |
} |
public void removeDeletingListener(MailAliasDeletingListener listener) |
{ |
deletingListeners.remove(listener); |
} |
public void addDeletedListener(MailAliasDeletedListener listener) |
{ |
deletedListeners.add(listener); |
229,6 → 244,12 |
if(!mailAlias.deleteableBy(editor)) |
throw new ModelSecurityException(); |
// inform deleting listeners |
for(Iterator i = deletingListeners.iterator(); i.hasNext(); ) { |
MailAliasDeletingListener listener = (MailAliasDeletingListener)i.next(); |
listener.mailAliasDeleting(editor, mailAlias); |
} |
// backup copy |
MailAlias oldMailAlias = new MailAlias(mailAlias); |
241,7 → 262,7 |
throw new ModelException(ex); |
} |
// inform listeners |
// inform deleted listeners |
for(Iterator i = deletedListeners.iterator(); i.hasNext(); ) { |
MailAliasDeletedListener listener = (MailAliasDeletedListener)i.next(); |
listener.mailAliasDeleted(editor, oldMailAlias); |
309,6 → 330,64 |
return iterateBeforeDelete(editor, mailAliases, known); |
} |
public void userDeleting(User editor, User user) |
throws ModelException |
{ |
Collection mailAliases; |
try { |
mailAliases = HibernateUtil.currentSession().find( |
"from MailAlias where owner = ?", |
user, Hibernate.entity(User.class) ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
for(Iterator i = mailAliases.iterator(); i.hasNext(); ) { |
delete(editor, (MailAlias)i.next()); |
} |
} |
public Collection inetDomainBeforeDelete(User editor, InetDomain domain, Collection known) |
throws ModelException |
{ |
Collection mailAliases; |
try { |
mailAliases = HibernateUtil.currentSession().find( |
"from MailAlias where domain = ?", |
domain, Hibernate.entity(InetDomain.class) ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
return iterateBeforeDelete(editor, mailAliases, known); |
} |
public void inetDomainDeleting(User editor, InetDomain domain) |
throws ModelException |
{ |
Collection mailAliases; |
try { |
mailAliases = HibernateUtil.currentSession().find( |
"from MailAlias where domain = ?", |
domain, Hibernate.entity(InetDomain.class) ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
for(Iterator i = mailAliases.iterator(); i.hasNext(); ) { |
delete(editor, (MailAlias)i.next()); |
} |
} |
private Collection iterateBeforeDelete(User editor, Collection mailAliases, Collection known) |
throws ModelException |
{ |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/InetDomainDeletingListener.java |
---|
0,0 → 1,18 |
package ak.hostadmiral.core.model; |
import java.util.Collection; |
import ak.hostadmiral.util.ModelException; |
public interface InetDomainDeletingListener |
{ |
/** |
* called just before some domain is deleted. |
* |
* @param editor who is doing the operation |
* @param domain the domain is being deleting |
* @throws ModelException in case of any errors, no action should be done |
* until this moment in other classes |
*/ |
public void inetDomainDeleting(User editor, InetDomain domain) |
throws ModelException; |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/SystemUserManager.java |
---|
8,7 → 8,9 |
import ak.hostadmiral.util.ModelSecurityException; |
public class SystemUserManager |
implements UserBeforeDeleteListener |
implements |
UserBeforeDeleteListener, |
UserDeletingListener |
{ |
private static SystemUserManager systemUserManager = null; |
private static boolean registered = false; |
44,6 → 46,7 |
private Collection createdListeners = new ArrayList(); |
private Collection modifiedListeners = new ArrayList(); |
private Collection beforeDeleteListeners = new ArrayList(); |
private Collection deletingListeners = new ArrayList(); |
private Collection deletedListeners = new ArrayList(); |
private SystemUserManager() |
229,6 → 232,16 |
beforeDeleteListeners.remove(listener); |
} |
public void addDeletingListener(SystemUserDeletingListener listener) |
{ |
deletingListeners.add(listener); |
} |
public void removeDeletingListener(SystemUserDeletingListener listener) |
{ |
deletingListeners.remove(listener); |
} |
public void addDeletedListener(SystemUserDeletedListener listener) |
{ |
deletedListeners.add(listener); |
261,6 → 274,12 |
if(!systemUser.deleteableBy(editor)) |
throw new ModelSecurityException(); |
// inform deleting listeners |
for(Iterator i = deletingListeners.iterator(); i.hasNext(); ) { |
SystemUserDeletingListener listener = (SystemUserDeletingListener)i.next(); |
listener.systemUserDeleting(editor, systemUser); |
} |
// backup copy |
SystemUser oldSystemUser = new SystemUser(systemUser); |
273,7 → 292,7 |
throw new ModelException(ex); |
} |
// inform listeners |
// inform deleted listeners |
for(Iterator i = deletedListeners.iterator(); i.hasNext(); ) { |
SystemUserDeletedListener listener = (SystemUserDeletedListener)i.next(); |
listener.systemUserDeleted(editor, oldSystemUser); |
350,6 → 369,26 |
return cascade; |
} |
public void userDeleting(User editor, User user) |
throws ModelException |
{ |
Collection systemUsers; |
try { |
systemUsers = HibernateUtil.currentSession().find( |
"from SystemUser where owner = ?", |
user, Hibernate.entity(User.class) ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
for(Iterator i = systemUsers.iterator(); i.hasNext(); ) { |
delete(editor, (SystemUser)i.next()); |
} |
} |
public static final Comparator UID_COMPARATOR = new UidComparator(); |
public static final Comparator NAME_COMPARATOR = new NameComparator(); |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailboxManager.java |
---|
10,8 → 10,11 |
public class MailboxManager |
implements |
UserBeforeDeleteListener, |
UserDeletingListener, |
SystemUserBeforeDeleteListener, |
InetDomainBeforeDeleteListener |
SystemUserDeletingListener, |
InetDomainBeforeDeleteListener, |
InetDomainDeletingListener |
{ |
private static MailboxManager mailboxManager = null; |
private static boolean registered = false; |
47,6 → 50,7 |
private Collection createdListeners = new ArrayList(); |
private Collection modifiedListeners = new ArrayList(); |
private Collection beforeDeleteListeners = new ArrayList(); |
private Collection deletingListeners = new ArrayList(); |
private Collection deletedListeners = new ArrayList(); |
private MailboxManager() |
199,6 → 203,16 |
beforeDeleteListeners.remove(listener); |
} |
public void addDeletingListener(MailboxDeletingListener listener) |
{ |
deletingListeners.add(listener); |
} |
public void removeDeletingListener(MailboxDeletingListener listener) |
{ |
deletingListeners.remove(listener); |
} |
public void addDeletedListener(MailboxDeletedListener listener) |
{ |
deletedListeners.add(listener); |
231,6 → 245,12 |
if(!mailbox.deleteableBy(editor)) |
throw new ModelSecurityException(); |
// inform deleting listeners |
for(Iterator i = deletingListeners.iterator(); i.hasNext(); ) { |
MailboxDeletingListener listener = (MailboxDeletingListener)i.next(); |
listener.mailboxDeleting(editor, mailbox); |
} |
// backup copy |
Mailbox oldMailbox = new Mailbox(mailbox); |
243,7 → 263,7 |
throw new ModelException(ex); |
} |
// inform listeners |
// inform deleted listeners |
for(Iterator i = deletedListeners.iterator(); i.hasNext(); ) { |
MailboxDeletedListener listener = (MailboxDeletedListener)i.next(); |
listener.mailboxDeleted(editor, oldMailbox); |
311,6 → 331,26 |
return iterateBeforeDelete(editor, mailboxes, known); |
} |
public void userDeleting(User editor, User user) |
throws ModelException |
{ |
Collection mailboxes; |
try { |
mailboxes = HibernateUtil.currentSession().find( |
"from Mailbox where owner = ?", |
user, Hibernate.entity(User.class) ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
for(Iterator i = mailboxes.iterator(); i.hasNext(); ) { |
delete(editor, (Mailbox)i.next()); |
} |
} |
public Collection inetDomainBeforeDelete(User editor, InetDomain domain, Collection known) |
throws ModelException |
{ |
329,6 → 369,26 |
return iterateBeforeDelete(editor, mailboxes, known); |
} |
public void inetDomainDeleting(User editor, InetDomain domain) |
throws ModelException |
{ |
Collection mailboxes; |
try { |
mailboxes = HibernateUtil.currentSession().find( |
"from Mailbox where domain = ?", |
domain, Hibernate.entity(InetDomain.class) ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
for(Iterator i = mailboxes.iterator(); i.hasNext(); ) { |
delete(editor, (Mailbox)i.next()); |
} |
} |
public Collection systemUserBeforeDelete(User editor, SystemUser user, Collection known) |
throws ModelException |
{ |
347,6 → 407,26 |
return iterateBeforeDelete(editor, mailboxes, known); |
} |
public void systemUserDeleting(User editor, SystemUser user) |
throws ModelException |
{ |
Collection mailboxes; |
try { |
mailboxes = HibernateUtil.currentSession().find( |
"from Mailbox where systemUser = ?", |
user, Hibernate.entity(SystemUser.class) ); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
for(Iterator i = mailboxes.iterator(); i.hasNext(); ) { |
delete(editor, (Mailbox)i.next()); |
} |
} |
private Collection iterateBeforeDelete(User editor, Collection mailboxes, Collection known) |
throws ModelException |
{ |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/UserDeletingListener.java |
---|
0,0 → 1,18 |
package ak.hostadmiral.core.model; |
import java.util.Collection; |
import ak.hostadmiral.util.ModelException; |
public interface UserDeletingListener |
{ |
/** |
* called just before some user is deleted. |
* |
* @param editor who is doing the operation |
* @param user the user is being deleting |
* @throws ModelException in case of any errors, no action should be done |
* until this moment in other classes |
*/ |
public void userDeleting(User editor, User user) |
throws ModelException; |
} |