You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
45 lines
1.2 KiB
package de.fd.fh.server.access;
|
|
|
|
import de.fd.fh.server.user.events.ChangePasswordEvent;
|
|
import de.fd.fh.server.user.events.ChangeUserNameEvent;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
import java.util.Observable;
|
|
import java.util.Observer;
|
|
|
|
@RequiredArgsConstructor
|
|
public class AccessContextEventListener implements Observer
|
|
{
|
|
private final AccessRepository accessRepository;
|
|
|
|
@Override
|
|
public void update(Observable observable, Object event)
|
|
{
|
|
if (event instanceof ChangePasswordEvent)
|
|
{
|
|
handlePasswordChange((ChangePasswordEvent) event);
|
|
}
|
|
else if (event instanceof ChangeUserNameEvent)
|
|
{
|
|
handleRename((ChangeUserNameEvent) event);
|
|
}
|
|
}
|
|
|
|
public void handleRename(ChangeUserNameEvent event)
|
|
{
|
|
final Access access = accessRepository.findByUserId(event.getUserId());
|
|
|
|
access.rename(event.getNewName());
|
|
|
|
accessRepository.save(access);
|
|
}
|
|
|
|
public void handlePasswordChange(ChangePasswordEvent event)
|
|
{
|
|
final Access access = accessRepository.findByUserId(event.getUserId());
|
|
|
|
access.updatePassword(event.getNewPassword());
|
|
|
|
accessRepository.save(access);
|
|
}
|
|
}
|