20,10 → 20,10 |
UserBeforeDeleteListener, |
UserDeletingListener |
{ |
private UserStore store; |
private UserValidator userValidator; |
private Class[] passwordStores; |
private UserStore store; |
private Class[] passwordStores; |
|
private Collection validateListeners = new ArrayList(); |
private Collection createdListeners = new ArrayList(); |
private Collection modifiedListeners = new ArrayList(); |
private Collection beforeDeleteListeners = new ArrayList(); |
92,6 → 92,7 |
public void save(User editor, User user) |
throws ModelException |
{ |
// security check |
if(!user.editableBy(editor) && !user.partEditableBy(editor) |
&& !user.mayChangeSuperuser(editor)) |
{ |
98,13 → 99,18 |
throw new ModelSecurityException(); |
} |
|
if(userValidator != null) |
userValidator.validateUser(editor, user); |
//user.setModUser(editor); // FIXME: disabled because hb throws exception |
// if user edits itself |
|
boolean isNew = user.isNew(); |
User oldUser = user.getOrigin(); |
if(oldUser == null) oldUser = user; |
|
//user.setModUser(editor); // FIXME: disabled because hb throws exception |
// if user edits itself |
// validate |
for(Iterator i = validateListeners.iterator(); i.hasNext(); ) { |
UserValidateListener listener = (UserValidateListener)i.next(); |
listener.userValidate(editor, user, oldUser); |
} |
|
store.save(user); |
|
123,8 → 129,6 |
} |
} |
else { |
User oldUser = user.getOrigin(); |
if(oldUser == null) oldUser = user; |
for(Iterator i = modifiedListeners.iterator(); i.hasNext(); ) { |
UserModifiedListener listener = (UserModifiedListener)i.next(); |
listener.userModified(editor, user, oldUser); |
135,6 → 139,16 |
user.resetOrigin(); |
} |
|
public void addValidateListener(UserValidateListener listener) |
{ |
validateListeners.add(listener); |
} |
|
public void removeValidateListener(UserValidateListener listener) |
{ |
validateListeners.remove(listener); |
} |
|
public void addCreatedListener(UserCreatedListener listener) |
{ |
createdListeners.add(listener); |
407,12 → 421,6 |
Class c = Class.forName(((String[])params.get("store"))[0]); |
store = (UserStore)c.newInstance(); |
|
String[] userValidatorName = (String[])params.get("userValidator"); |
if(userValidatorName != null) { |
Class c2 = Class.forName(userValidatorName[0]); |
userValidator = (UserValidator)c2.newInstance(); |
} |
|
String[] passwordStoreNames = (String[])params.get("passwordStore"); |
if(passwordStoreNames != null) { |
passwordStores = new Class[passwordStoreNames.length]; |