/hostadmiral/trunk/src/ak/hostadmiral/core/model/SystemUserModifiedListener.java |
---|
File deleted |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/SystemUserCreatedListener.java |
---|
File deleted |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailboxCreatedListener.java |
---|
File deleted |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/SystemUserDeletedListener.java |
---|
File deleted |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailboxModifiedListener.java |
---|
File deleted |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailAliasDeletedListener.java |
---|
File deleted |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailboxDeletedListener.java |
---|
File deleted |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/InetDomainCreatedListener.java |
---|
File deleted |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/InetDomainModifiedListener.java |
---|
File deleted |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/InetDomainDeletedListener.java |
---|
File deleted |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailAliasCreatedListener.java |
---|
File deleted |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailAliasModifiedListener.java |
---|
File deleted |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailAliasDestinationManager.java |
---|
8,9 → 8,6 |
public class MailAliasDestinationManager |
{ |
// FIXME create, delete and modify listeners are not implemented, bacause |
// all operations are done via MailAliasManager. Do we need them? |
private static boolean registered = false; |
protected static void register() |
{ |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/Mailbox.java |
---|
18,35 → 18,11 |
private Boolean virusCheck; |
private Boolean spamCheck; |
private SystemUser systemUser; |
private Mailbox origin; // save original object state before any changes |
protected Mailbox() |
{ |
} |
protected Mailbox(Mailbox origin) |
{ |
super(origin); |
this.login = origin.login; |
this.password = origin.password; |
this.domain = origin.domain; |
this.owner = origin.owner; |
this.virusCheck = origin.virusCheck; |
this.spamCheck = origin.spamCheck; |
this.systemUser = origin.systemUser; |
} |
protected Mailbox getOrigin() |
{ |
return origin; |
} |
protected void backupMe() |
{ |
if(origin == null) |
origin = new Mailbox(this); |
} |
/** |
* |
* @hibernate.property |
67,7 → 43,6 |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
backupMe(); |
this.login = login; |
} |
91,7 → 66,6 |
if(password == null) |
throw new NullPointerException("Null password"); |
backupMe(); |
this.password = Digest.encode(password); |
} |
115,7 → 89,6 |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
backupMe(); |
this.domain = domain; |
} |
139,7 → 112,6 |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
backupMe(); |
this.owner = owner; |
} |
163,7 → 135,6 |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
backupMe(); |
this.virusCheck = virusCheck; |
} |
187,7 → 158,6 |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
backupMe(); |
this.spamCheck = spamCheck; |
} |
211,7 → 181,6 |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
backupMe(); |
this.systemUser = systemUser; |
} |
256,10 → 225,9 |
protected static Mailbox createLimitedCopy(Mailbox origin) |
{ |
Mailbox m = new Mailbox(); |
m.setLogin(origin.getLogin()); |
m.setDomain(origin.getDomain()); |
m.setOwner(origin.getOwner()); |
return m; |
Mailbox u = new Mailbox(); |
u.setLogin(origin.getLogin()); |
u.setDomain(origin.getDomain()); |
return u; |
} |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailAlias.java |
---|
15,32 → 15,11 |
private InetDomain domain; |
private User owner; |
private Collection destinations; // Collection(MailAliasDestintion) |
private MailAlias origin; // save original object state before any changes |
protected MailAlias() |
{ |
} |
protected MailAlias(MailAlias origin) |
{ |
super(origin); |
this.address = origin.address; |
this.domain = origin.domain; |
this.owner = origin.owner; |
this.destinations = origin.destinations; // FIXME: or make a copy? |
} |
protected MailAlias getOrigin() |
{ |
return origin; |
} |
protected void backupMe() |
{ |
if(origin == null) |
origin = new MailAlias(this); |
} |
/** |
* |
* @hibernate.property |
187,13 → 166,4 |
return editor.isSuperuser() |
|| InetDomainManager.getInstance().areInetDomainsAvailable(editor); |
} |
protected static MailAlias createLimitedCopy(MailAlias origin) |
{ |
MailAlias m = new MailAlias(); |
m.setAddress(origin.getAddress()); |
m.setDomain(origin.getDomain()); |
m.setOwner(origin.getOwner()); |
return m; |
} |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/UserManager.java |
---|
236,7 → 236,7 |
public void delete(User editor, User user) |
throws ModelException |
{ |
// check rights |
// chech rights |
if(!user.deleteableBy(editor)) |
throw new ModelSecurityException(); |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/SystemUserManager.java |
---|
41,10 → 41,7 |
register(); |
} |
private Collection createdListeners = new ArrayList(); |
private Collection modifiedListeners = new ArrayList(); |
private Collection beforeDeleteListeners = new ArrayList(); |
private Collection deletedListeners = new ArrayList(); |
private SystemUserManager() |
{ |
170,8 → 167,6 |
if(!systemUser.editableBy(editor)) |
throw new ModelSecurityException(); |
boolean isNew = systemUser.isNew(); |
//systemUser.setModUser(editor); // FIXME |
try { |
181,44 → 176,8 |
{ |
throw new ModelException(ex); |
} |
// inform listeners |
if(isNew) { |
for(Iterator i = createdListeners.iterator(); i.hasNext(); ) { |
SystemUserCreatedListener listener = (SystemUserCreatedListener)i.next(); |
listener.systemUserCreated(editor, systemUser); |
} |
} |
else { |
SystemUser oldSystemUser = systemUser.getOrigin(); |
if(oldSystemUser == null) oldSystemUser = systemUser; |
for(Iterator i = modifiedListeners.iterator(); i.hasNext(); ) { |
SystemUserModifiedListener listener = (SystemUserModifiedListener)i.next(); |
listener.systemUserModified(editor, systemUser, oldSystemUser); |
} |
} |
} |
public void addCreatedListener(SystemUserCreatedListener listener) |
{ |
createdListeners.add(listener); |
} |
public void removeCreatedListener(SystemUserCreatedListener listener) |
{ |
createdListeners.remove(listener); |
} |
public void addModifiedListener(SystemUserModifiedListener listener) |
{ |
modifiedListeners.add(listener); |
} |
public void removeModifiedListener(SystemUserModifiedListener listener) |
{ |
modifiedListeners.remove(listener); |
} |
public void addBeforeDeleteListener(SystemUserBeforeDeleteListener listener) |
{ |
beforeDeleteListeners.add(listener); |
229,16 → 188,6 |
beforeDeleteListeners.remove(listener); |
} |
public void addDeletedListener(SystemUserDeletedListener listener) |
{ |
deletedListeners.add(listener); |
} |
public void removeDeletedListener(SystemUserDeletedListener listener) |
{ |
deletedListeners.remove(listener); |
} |
public Collection beforeDelete(User editor, SystemUser user, Collection known) |
throws ModelException |
{ |
257,14 → 206,9 |
public void delete(User editor, SystemUser systemUser) |
throws ModelException |
{ |
// check rights |
if(!systemUser.deleteableBy(editor)) |
throw new ModelSecurityException(); |
// backup copy |
SystemUser oldSystemUser = new SystemUser(systemUser); |
// delete it |
try { |
HibernateUtil.currentSession().delete(systemUser); |
} |
272,13 → 216,7 |
{ |
throw new ModelException(ex); |
} |
// inform listeners |
for(Iterator i = deletedListeners.iterator(); i.hasNext(); ) { |
SystemUserDeletedListener listener = (SystemUserDeletedListener)i.next(); |
listener.systemUserDeleted(editor, oldSystemUser); |
} |
} |
public Collection listSystemUsers(User editor) |
throws ModelException |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/InetDomainManager.java |
---|
41,10 → 41,7 |
register(); |
} |
private Collection createdListeners = new ArrayList(); |
private Collection modifiedListeners = new ArrayList(); |
private Collection beforeDeleteListeners = new ArrayList(); |
private Collection deletedListeners = new ArrayList(); |
private InetDomainManager() |
{ |
131,8 → 128,6 |
if(!domain.editableBy(editor)) |
throw new ModelSecurityException(); |
boolean isNew = domain.isNew(); |
//domain.setModUser(editor); // FIXME |
try { |
142,64 → 137,18 |
{ |
throw new ModelException(ex); |
} |
// inform listeners |
if(isNew) { |
for(Iterator i = createdListeners.iterator(); i.hasNext(); ) { |
InetDomainCreatedListener listener = (InetDomainCreatedListener)i.next(); |
listener.inetDomainCreated(editor, domain); |
} |
} |
else { |
InetDomain oldDomain = domain.getOrigin(); |
if(oldDomain == null) oldDomain = domain; |
for(Iterator i = modifiedListeners.iterator(); i.hasNext(); ) { |
InetDomainModifiedListener listener = (InetDomainModifiedListener)i.next(); |
listener.inetDomainModified(editor, domain, oldDomain); |
} |
} |
} |
public void addCreatedListener(InetDomainCreatedListener listener) |
public void addBeforeDeleteListener(SystemUserBeforeDeleteListener listener) |
{ |
createdListeners.add(listener); |
} |
public void removeCreatedListener(InetDomainCreatedListener listener) |
{ |
createdListeners.remove(listener); |
} |
public void addModifiedListener(InetDomainModifiedListener listener) |
{ |
modifiedListeners.add(listener); |
} |
public void removeModifiedListener(InetDomainModifiedListener listener) |
{ |
modifiedListeners.remove(listener); |
} |
public void addBeforeDeleteListener(InetDomainBeforeDeleteListener listener) |
{ |
beforeDeleteListeners.add(listener); |
} |
public void removeBeforeDeleteListener(InetDomainBeforeDeleteListener listener) |
public void removeBeforeDeleteListener(SystemUserBeforeDeleteListener listener) |
{ |
beforeDeleteListeners.remove(listener); |
} |
public void addDeletedListener(InetDomainDeletedListener listener) |
{ |
deletedListeners.add(listener); |
} |
public void removeDeletedListener(InetDomainDeletedListener listener) |
{ |
deletedListeners.remove(listener); |
} |
public Collection beforeDelete(User editor, InetDomain domain, Collection known) |
throws ModelException |
{ |
218,14 → 167,9 |
public void delete(User editor, InetDomain domain) |
throws ModelException |
{ |
// check rights |
if(!domain.deleteableBy(editor)) |
throw new ModelSecurityException(); |
// backup copy |
InetDomain oldDomain = new InetDomain(domain); |
// delete it |
try { |
HibernateUtil.currentSession().delete(domain); |
234,13 → 178,7 |
{ |
throw new ModelException(ex); |
} |
// inform listeners |
for(Iterator i = deletedListeners.iterator(); i.hasNext(); ) { |
InetDomainDeletedListener listener = (InetDomainDeletedListener)i.next(); |
listener.inetDomainDeleted(editor, oldDomain); |
} |
} |
public Collection listInetDomains(User editor) |
throws ModelException |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailboxManager.java |
---|
44,10 → 44,7 |
register(); |
} |
private Collection createdListeners = new ArrayList(); |
private Collection modifiedListeners = new ArrayList(); |
private Collection beforeDeleteListeners = new ArrayList(); |
private Collection deletedListeners = new ArrayList(); |
private MailboxManager() |
{ |
140,8 → 137,6 |
if(!mailbox.editableBy(editor)) |
throw new ModelSecurityException(); |
boolean isNew = mailbox.isNew(); |
//mailbox.setModUser(editor); // FIXME |
try { |
151,44 → 146,8 |
{ |
throw new ModelException(ex); |
} |
// inform listeners |
if(isNew) { |
for(Iterator i = createdListeners.iterator(); i.hasNext(); ) { |
MailboxCreatedListener listener = (MailboxCreatedListener)i.next(); |
listener.mailboxCreated(editor, mailbox); |
} |
} |
else { |
Mailbox oldMailbox = mailbox.getOrigin(); |
if(oldMailbox == null) oldMailbox = mailbox; |
for(Iterator i = modifiedListeners.iterator(); i.hasNext(); ) { |
MailboxModifiedListener listener = (MailboxModifiedListener)i.next(); |
listener.mailboxModified(editor, mailbox, oldMailbox); |
} |
} |
} |
public void addCreatedListener(MailboxCreatedListener listener) |
{ |
createdListeners.add(listener); |
} |
public void removeCreatedListener(MailboxCreatedListener listener) |
{ |
createdListeners.remove(listener); |
} |
public void addModifiedListener(MailboxModifiedListener listener) |
{ |
modifiedListeners.add(listener); |
} |
public void removeModifiedListener(MailboxModifiedListener listener) |
{ |
modifiedListeners.remove(listener); |
} |
public void addBeforeDeleteListener(MailboxBeforeDeleteListener listener) |
{ |
beforeDeleteListeners.add(listener); |
199,16 → 158,6 |
beforeDeleteListeners.remove(listener); |
} |
public void addDeletedListener(MailboxDeletedListener listener) |
{ |
deletedListeners.add(listener); |
} |
public void removeDeletedListener(MailboxDeletedListener listener) |
{ |
deletedListeners.remove(listener); |
} |
public Collection beforeDelete(User editor, Mailbox mailbox, Collection known) |
throws ModelException |
{ |
227,14 → 176,9 |
public void delete(User editor, Mailbox mailbox) |
throws ModelException |
{ |
// check rights |
if(!mailbox.deleteableBy(editor)) |
throw new ModelSecurityException(); |
// backup copy |
Mailbox oldMailbox = new Mailbox(mailbox); |
// delete it |
try { |
HibernateUtil.currentSession().delete(mailbox); |
} |
242,13 → 186,7 |
{ |
throw new ModelException(ex); |
} |
// inform listeners |
for(Iterator i = deletedListeners.iterator(); i.hasNext(); ) { |
MailboxDeletedListener listener = (MailboxDeletedListener)i.next(); |
listener.mailboxDeleted(editor, oldMailbox); |
} |
} |
public Collection listMailboxes(User editor) |
throws ModelException |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailAliasManager.java |
---|
8,19 → 8,8 |
import ak.hostadmiral.util.ModelSecurityException; |
public class MailAliasManager |
implements UserBeforeDeleteListener |
{ |
private static MailAliasManager mailAliasManager = null; |
private static boolean registered = false; |
public static MailAliasManager getInstance() |
{ |
if(mailAliasManager == null) |
mailAliasManager = new MailAliasManager(); |
return mailAliasManager; |
} |
protected static void register() |
{ |
synchronized(MailAliasManager.class) { |
42,14 → 31,8 |
register(); |
} |
private Collection createdListeners = new ArrayList(); |
private Collection modifiedListeners = new ArrayList(); |
private Collection beforeDeleteListeners = new ArrayList(); |
private Collection deletedListeners = new ArrayList(); |
private MailAliasManager() |
{ |
UserManager.getInstance().addBeforeDeleteListener(this); |
} |
public MailAlias create(User editor) |
138,8 → 121,6 |
if(!mailAlias.editableBy(editor)) |
throw new ModelSecurityException(); |
boolean isNew = mailAlias.isNew(); |
//mailAlias.setModUser(editor); // FIXME |
try { |
149,90 → 130,14 |
{ |
throw new ModelException(ex); |
} |
// inform listeners |
if(isNew) { |
for(Iterator i = createdListeners.iterator(); i.hasNext(); ) { |
MailAliasCreatedListener listener = (MailAliasCreatedListener)i.next(); |
listener.mailAliasCreated(editor, mailAlias); |
} |
} |
else { |
MailAlias oldMailAlias = mailAlias.getOrigin(); |
if(oldMailAlias == null) oldMailAlias = mailAlias; |
for(Iterator i = modifiedListeners.iterator(); i.hasNext(); ) { |
MailAliasModifiedListener listener = (MailAliasModifiedListener)i.next(); |
listener.mailAliasModified(editor, mailAlias, oldMailAlias); |
} |
} |
} |
public void addCreatedListener(MailAliasCreatedListener listener) |
{ |
createdListeners.add(listener); |
} |
public void removeCreatedListener(MailAliasCreatedListener listener) |
{ |
createdListeners.remove(listener); |
} |
public void addModifiedListener(MailAliasModifiedListener listener) |
{ |
modifiedListeners.add(listener); |
} |
public void removeModifiedListener(MailAliasModifiedListener listener) |
{ |
modifiedListeners.remove(listener); |
} |
public void addBeforeDeleteListener(MailAliasBeforeDeleteListener listener) |
{ |
beforeDeleteListeners.add(listener); |
} |
public void removeBeforeDeleteListener(MailAliasBeforeDeleteListener listener) |
{ |
beforeDeleteListeners.remove(listener); |
} |
public void addDeletedListener(MailAliasDeletedListener listener) |
{ |
deletedListeners.add(listener); |
} |
public void removeDeletedListener(MailAliasDeletedListener listener) |
{ |
deletedListeners.remove(listener); |
} |
public Collection beforeDelete(User editor, MailAlias mailAlias, Collection known) |
throws ModelException |
{ |
Collection cascade = new ArrayList(); |
for(Iterator i = beforeDeleteListeners.iterator(); i.hasNext(); ) { |
MailAliasBeforeDeleteListener listener = (MailAliasBeforeDeleteListener)i.next(); |
Collection subcascade = listener.mailAliasBeforeDelete(editor, mailAlias, known); |
if(subcascade != null) |
cascade.addAll(subcascade); |
} |
return cascade; |
} |
public void delete(User editor, MailAlias mailAlias) |
throws ModelException |
{ |
// check rights |
if(!mailAlias.deleteableBy(editor)) |
throw new ModelSecurityException(); |
// backup copy |
MailAlias oldMailAlias = new MailAlias(mailAlias); |
// delete it |
try { |
HibernateUtil.currentSession().delete(mailAlias); |
} |
240,13 → 145,7 |
{ |
throw new ModelException(ex); |
} |
// inform listeners |
for(Iterator i = deletedListeners.iterator(); i.hasNext(); ) { |
MailAliasDeletedListener listener = (MailAliasDeletedListener)i.next(); |
listener.mailAliasDeleted(editor, oldMailAlias); |
} |
} |
public Collection listMailAliases(User editor) |
throws ModelException |
291,47 → 190,16 |
} |
} |
public Collection userBeforeDelete(User editor, User user, Collection known) |
throws ModelException |
{ |
Collection mailAliases; |
private static MailAliasManager mailAliasManager = null; |
try { |
mailAliases = HibernateUtil.currentSession().find( |
"from MailAlias where owner = ?", |
user, Hibernate.entity(User.class) ); |
} |
catch(HibernateException ex) |
public static MailAliasManager getInstance() |
{ |
throw new ModelException(ex); |
} |
if(mailAliasManager == null) |
mailAliasManager = new MailAliasManager(); |
return iterateBeforeDelete(editor, mailAliases, known); |
return mailAliasManager; |
} |
private Collection iterateBeforeDelete(User editor, Collection mailAliases, Collection known) |
throws ModelException |
{ |
Collection cascade = new ArrayList(); |
for(Iterator i = mailAliases.iterator(); i.hasNext(); ) { |
MailAlias mailAlias = (MailAlias)i.next(); |
if(mailAlias.viewableBy(editor)) { |
if(mailAlias.deleteableBy(editor)) |
cascade.add(new CascadeDeleteElement(mailAlias, CascadeDeleteElement.DELETE, |
this.beforeDelete(editor, mailAlias, known))); |
else |
cascade.add(new CascadeDeleteElement(mailAlias, CascadeDeleteElement.FORBIDDEN, |
null)); |
} |
else { |
cascade.add(new CascadeDeleteElement(MailAlias.createLimitedCopy(mailAlias), |
CascadeDeleteElement.FORBIDDEN, null)); |
} |
} |
return cascade; |
} |
public static final Comparator ADDRESS_COMPARATOR = new AddressComparator(); |
private static class AddressComparator |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/SystemUser.java |
---|
14,31 → 14,11 |
private Integer uid; |
private String name; |
private User owner; |
private SystemUser origin; // save original object state before any changes |
protected SystemUser() |
{ |
} |
protected SystemUser(SystemUser origin) |
{ |
super(origin); |
this.uid = origin.uid; |
this.name = origin.name; |
this.owner = origin.owner; |
} |
protected SystemUser getOrigin() |
{ |
return origin; |
} |
protected void backupMe() |
{ |
if(origin == null) |
origin = new SystemUser(this); |
} |
/** |
* |
* @hibernate.property |
/hostadmiral/trunk/src/ak/hostadmiral/core/model/InetDomain.java |
---|
12,30 → 12,11 |
{ |
private String name; |
private User owner; |
private InetDomain origin; // save original object state before any changes |
protected InetDomain() |
{ |
} |
protected InetDomain(InetDomain origin) |
{ |
super(origin); |
this.name = origin.name; |
this.owner = origin.owner; |
} |
protected InetDomain getOrigin() |
{ |
return origin; |
} |
protected void backupMe() |
{ |
if(origin == null) |
origin = new InetDomain(this); |
} |
/** |
* |
* @hibernate.property |
56,7 → 37,6 |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
backupMe(); |
this.name = name; |
} |
80,7 → 60,6 |
if(!editableBy(editor)) |
throw new ModelSecurityException(); |
backupMe(); |
this.owner = owner; |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/listener/dummy/DummyListener.java |
---|
File deleted |
/hostadmiral/trunk/src/ak/hostadmiral/core/listener/dummy/UserModifiedDummyListener.java |
---|
0,0 → 1,16 |
package ak.hostadmiral.core.listener.dummy; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserModifiedListener; |
public class UserModifiedDummyListener |
implements UserModifiedListener |
{ |
public void userModified(User editor, User user, User oldUser) |
throws ModelException |
{ |
System.out.println("UserCreatedDummyListener.userModified: from " + oldUser |
+ " to " + user + " by " + editor); |
} |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/listener/dummy/UserDeletedDummyListener.java |
---|
0,0 → 1,16 |
package ak.hostadmiral.core.listener.dummy; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserDeletedListener; |
public class UserDeletedDummyListener |
implements UserDeletedListener |
{ |
public void userDeleted(User editor, User user) |
throws ModelException |
{ |
System.out.println("UserCreatedDummyListener.userDeleted: " |
+ user + " by " + editor); |
} |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/listener/dummy/UserCreatedDummyListener.java |
---|
0,0 → 1,16 |
package ak.hostadmiral.core.listener.dummy; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserCreatedListener; |
public class UserCreatedDummyListener |
implements UserCreatedListener |
{ |
public void userCreated(User editor, User user) |
throws ModelException |
{ |
System.out.println("UserCreatedDummyListener.userCreated: " |
+ user + " by " + editor); |
} |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/listener/file/FileListener.java |
---|
File deleted |
/hostadmiral/trunk/src/ak/hostadmiral/core/listener/file/UserCreatedFileListener.java |
---|
0,0 → 1,22 |
package ak.hostadmiral.core.listener.file; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserCreatedListener; |
import org.apache.log4j.Logger; |
public class UserCreatedFileListener |
implements UserCreatedListener |
{ |
private static final Logger logger = Logger.getLogger(UserCreatedFileListener.class); |
public void userCreated(User editor, User user) |
throws ModelException |
{ |
InterfaceFile.send("user\tcreate\t" + InterfaceFile.escape(user.getLogin()) + "\t" |
+ InterfaceFile.escape(/* FIXME user.getPassword() */ "") + "\t" |
+ user.getEnabled() + "\t" |
+ InterfaceFile.escape(user.getComment())); |
} |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/listener/file/InterfaceFile.java |
---|
0,0 → 1,68 |
package ak.hostadmiral.core.listener.file; |
import java.io.Writer; |
import java.io.BufferedWriter; |
import java.io.FileWriter; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserModifiedListener; |
import org.apache.log4j.Logger; |
public class InterfaceFile |
{ |
private static final Logger logger = Logger.getLogger(InterfaceFile.class); |
private static String fileName; |
protected static Object lock = new Object(); |
public static final String PROTOCOL_NAME = "HostAdmiral_FileInterface"; |
public static final String PROTOCOL_VERSION = "0.1"; |
public static String getFileName() |
{ |
return fileName; |
} |
public static void setFileName(String fileName_) |
{ |
fileName = fileName_; |
} |
protected static String escape(String s) |
{ |
// FIXME: any other problem characters? optimize it? |
s = s.replaceAll("\0", "\\\\0"); |
s = s.replaceAll("\\\\", "\\\\\\\\"); |
s = s.replaceAll("\t", "\\\\t"); |
s = s.replaceAll("\n", "\\\\n"); |
return s; |
} |
protected static void send(String message) |
throws ModelException |
{ |
synchronized(lock) { |
try { |
Writer out = new BufferedWriter(new FileWriter(fileName)); |
if(PROTOCOL_NAME != null) { |
out.write(PROTOCOL_NAME); |
out.write(" "); |
} |
if(PROTOCOL_VERSION != null) { |
out.write(PROTOCOL_VERSION); |
out.write("\n"); |
} |
out.write(message); |
out.write("\n\n"); |
out.close(); |
} |
catch(Exception ex) { |
logger.error("Cannot save message to file", ex); |
throw new ModelException("Cannot save message to file:" + ex.getMessage()); |
// FIMXE: or just throw "internal server error" message? |
} |
} |
} |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/listener/file/UserModifiedFileListener.java |
---|
0,0 → 1,23 |
package ak.hostadmiral.core.listener.file; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserModifiedListener; |
import org.apache.log4j.Logger; |
public class UserModifiedFileListener |
implements UserModifiedListener |
{ |
private static final Logger logger = Logger.getLogger(UserModifiedFileListener.class); |
public void userModified(User editor, User user, User oldUser) |
throws ModelException |
{ |
InterfaceFile.send("user\tmodify\t" + InterfaceFile.escape(oldUser.getLogin()) + "\t" |
+ InterfaceFile.escape(user.getLogin()) + "\t" |
+ InterfaceFile.escape(/* FIXME user.getPassword() */ "") + "\t" |
+ user.getEnabled() + "\t" |
+ InterfaceFile.escape(user.getComment())); |
} |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/listener/file/ConfigServlet.java |
---|
16,7 → 16,7 |
public void init() |
throws ServletException |
{ |
FileListener.setFileName(getInitParameter("fileName")); |
InterfaceFile.setFileName(getInitParameter("fileName")); |
} |
public void service(ServletRequest req, ServletResponse res) |
/hostadmiral/trunk/src/ak/hostadmiral/core/listener/file/UserDeletedFileListener.java |
---|
0,0 → 1,19 |
package ak.hostadmiral.core.listener.file; |
import ak.hostadmiral.util.ModelException; |
import ak.hostadmiral.core.model.User; |
import ak.hostadmiral.core.model.UserDeletedListener; |
import org.apache.log4j.Logger; |
public class UserDeletedFileListener |
implements UserDeletedListener |
{ |
private static final Logger logger = Logger.getLogger(UserCreatedFileListener.class); |
public void userDeleted(User editor, User user) |
throws ModelException |
{ |
InterfaceFile.send("user\tdelete\t" + InterfaceFile.escape(user.getLogin())); |
} |
} |
/hostadmiral/trunk/build.xml |
---|
1,6 → 1,6 |
<project name="hostadmiral" default="deploy" basedir="."> |
<!--property name="build.compiler" value="jikes" /--> |
<property name="build.compiler" value="jikes" /> |
<property name="src" location="src" /> |
<property name="classes" location="classes" /> |
/hostadmiral/trunk/webapp/WEB-INF/web.xml |
---|
84,96 → 84,24 |
<init-param> |
<param-name>UserCreatedListener</param-name> |
<param-value> |
ak.hostadmiral.core.listener.dummy.DummyListener; |
ak.hostadmiral.core.listener.file.FileListener; |
ak.hostadmiral.core.listener.dummy.UserCreatedDummyListener; |
ak.hostadmiral.core.listener.file.UserCreatedFileListener; |
</param-value> |
</init-param> |
<init-param> |
<param-name>UserModifiedListener</param-name> |
<param-value> |
ak.hostadmiral.core.listener.dummy.DummyListener; |
ak.hostadmiral.core.listener.file.FileListener; |
ak.hostadmiral.core.listener.dummy.UserModifiedDummyListener; |
ak.hostadmiral.core.listener.file.UserModifiedFileListener; |
</param-value> |
</init-param> |
<init-param> |
<param-name>UserDeletedListener</param-name> |
<param-value> |
ak.hostadmiral.core.listener.dummy.DummyListener; |
ak.hostadmiral.core.listener.file.FileListener; |
ak.hostadmiral.core.listener.dummy.UserDeletedDummyListener; |
ak.hostadmiral.core.listener.file.UserDeletedFileListener; |
</param-value> |
</init-param> |
<init-param> |
<param-name>InetDomainCreatedListener</param-name> |
<param-value> |
ak.hostadmiral.core.listener.dummy.DummyListener; |
</param-value> |
</init-param> |
<init-param> |
<param-name>InetDomainModifiedListener</param-name> |
<param-value> |
ak.hostadmiral.core.listener.dummy.DummyListener; |
</param-value> |
</init-param> |
<init-param> |
<param-name>InetDomainDeletedListener</param-name> |
<param-value> |
ak.hostadmiral.core.listener.dummy.DummyListener; |
</param-value> |
</init-param> |
<init-param> |
<param-name>SystemUserCreatedListener</param-name> |
<param-value> |
ak.hostadmiral.core.listener.dummy.DummyListener; |
</param-value> |
</init-param> |
<init-param> |
<param-name>SystemUserModifiedListener</param-name> |
<param-value> |
ak.hostadmiral.core.listener.dummy.DummyListener; |
</param-value> |
</init-param> |
<init-param> |
<param-name>SystemUserDeletedListener</param-name> |
<param-value> |
ak.hostadmiral.core.listener.dummy.DummyListener; |
</param-value> |
</init-param> |
<init-param> |
<param-name>MailboxCreatedListener</param-name> |
<param-value> |
ak.hostadmiral.core.listener.dummy.DummyListener; |
</param-value> |
</init-param> |
<init-param> |
<param-name>MailboxModifiedListener</param-name> |
<param-value> |
ak.hostadmiral.core.listener.dummy.DummyListener; |
</param-value> |
</init-param> |
<init-param> |
<param-name>MailboxDeletedListener</param-name> |
<param-value> |
ak.hostadmiral.core.listener.dummy.DummyListener; |
</param-value> |
</init-param> |
<init-param> |
<param-name>MailAliasCreatedListener</param-name> |
<param-value> |
ak.hostadmiral.core.listener.dummy.DummyListener; |
</param-value> |
</init-param> |
<init-param> |
<param-name>MailAliasModifiedListener</param-name> |
<param-value> |
ak.hostadmiral.core.listener.dummy.DummyListener; |
</param-value> |
</init-param> |
<init-param> |
<param-name>MailAliasDeletedListener</param-name> |
<param-value> |
ak.hostadmiral.core.listener.dummy.DummyListener; |
</param-value> |
</init-param> |
<load-on-startup>1</load-on-startup> |
</servlet> |
<servlet> |