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(); |
|