41,7 → 41,10 |
register(); |
} |
|
private Collection createdListeners = new ArrayList(); |
private Collection modifiedListeners = new ArrayList(); |
private Collection beforeDeleteListeners = new ArrayList(); |
private Collection deletedListeners = new ArrayList(); |
|
private SystemUserManager() |
{ |
167,6 → 170,8 |
if(!systemUser.editableBy(editor)) |
throw new ModelSecurityException(); |
|
boolean isNew = systemUser.isNew(); |
|
//systemUser.setModUser(editor); // FIXME |
|
try { |
176,8 → 181,44 |
{ |
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); |
188,6 → 229,16 |
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 |
{ |
206,9 → 257,14 |
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); |
} |
216,6 → 272,12 |
{ |
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) |