Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 1221 → Rev 1222

/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailboxManager.java
261,7 → 261,7
{
Collection mailboxes = store.listOwnMailboxes(user);
 
return iterateBeforeDelete(editor, mailboxes, known);
return iterateBeforeDelete(editor, mailboxes, known, CascadeDeleteElement.DELETE);
}
 
public void userDeleting(User editor, User user)
279,7 → 279,7
{
Collection mailboxes = store.listMailboxesForDomain(domain);
 
return iterateBeforeDelete(editor, mailboxes, known);
return iterateBeforeDelete(editor, mailboxes, known, CascadeDeleteElement.DELETE);
}
 
public void inetDomainDeleting(User editor, InetDomain domain)
297,7 → 297,7
{
Collection mailboxes = store.listMailboxesForSystemUser(user);
 
return iterateBeforeDelete(editor, mailboxes, known);
return iterateBeforeDelete(editor, mailboxes, known, CascadeDeleteElement.CHANGE);
}
 
public void systemUserDeleting(User editor, SystemUser user)
306,12 → 306,13
Collection mailboxes = store.listMailboxesForSystemUser(user);
 
for(Iterator i = mailboxes.iterator(); i.hasNext(); ) {
// FIXME do not delete, just reset system user (?)
delete(editor, (Mailbox)i.next());
Mailbox mailbox = (Mailbox)i.next();
mailbox.setSystemUser(null);
save(editor, mailbox);
}
}
 
private Collection iterateBeforeDelete(User editor, Collection mailboxes, Collection known)
private Collection iterateBeforeDelete(User editor, Collection mailboxes, Collection known, int action)
throws ModelException
{
Collection cascade = new ArrayList();
321,7 → 322,9
 
known.add(mailbox);
if(mailbox.viewableBy(editor)) {
if(mailbox.deleteableBy(editor))
if(action == CascadeDeleteElement.CHANGE && mailbox.editableBy(editor))
cascade.add(new CascadeDeleteElement(mailbox, CascadeDeleteElement.CHANGE, null));
else if(action == CascadeDeleteElement.DELETE && mailbox.deleteableBy(editor))
cascade.add(new CascadeDeleteElement(mailbox, CascadeDeleteElement.DELETE,
this.beforeDelete(editor, mailbox, known)));
else