Added UserStatusChangeProcessor
additionally added UserStatus updating in the LoginCredentialProcessor yet missing: method to handle clients going offline
This commit is contained in:
@ -10,6 +10,7 @@ import envoy.data.Contacts;
|
||||
import envoy.data.LoginCredentials;
|
||||
import envoy.data.Message.MessageStatus;
|
||||
import envoy.data.User;
|
||||
import envoy.event.UserStatusChangeEvent;
|
||||
import envoy.server.ConnectionManager;
|
||||
import envoy.server.ObjectProcessor;
|
||||
import envoy.server.data.Message;
|
||||
@ -29,7 +30,7 @@ import envoy.server.net.ObjectWriteProxy;
|
||||
*/
|
||||
public class LoginCredentialProcessor implements ObjectProcessor<LoginCredentials> {
|
||||
|
||||
private PersistenceManager persistenceManager = PersistenceManager.getPersistenceManager();
|
||||
private PersistenceManager persistenceManager = PersistenceManager.getPersistenceManager();
|
||||
|
||||
@Override
|
||||
public Class<LoginCredentials> getInputClass() { return LoginCredentials.class; }
|
||||
@ -41,9 +42,10 @@ public class LoginCredentialProcessor implements ObjectProcessor<LoginCredential
|
||||
envoy.server.data.User user = getUser(input);
|
||||
|
||||
// Not logged in successfully
|
||||
if (user == null) {
|
||||
return;
|
||||
}
|
||||
if (user == null) return;
|
||||
// notifies contacts of this users online-going and updates his status in the
|
||||
// database
|
||||
UserStatusChangeProcessor.updateUserStatus(new UserStatusChangeEvent(user.toCommonUser()), writeProxy);
|
||||
|
||||
ConnectionManager.getInstance().registerUser(user.getId(), socketId);
|
||||
|
||||
@ -73,7 +75,7 @@ public class LoginCredentialProcessor implements ObjectProcessor<LoginCredential
|
||||
|
||||
private envoy.server.data.User getUser(LoginCredentials credentials) {
|
||||
envoy.server.data.User user;
|
||||
|
||||
|
||||
if (credentials.isRegistration()) {
|
||||
user = new envoy.server.data.User();
|
||||
user.setName(credentials.getName());
|
||||
@ -84,10 +86,8 @@ public class LoginCredentialProcessor implements ObjectProcessor<LoginCredential
|
||||
} else {
|
||||
user = persistenceManager.getUserByName(credentials.getName());
|
||||
// TODO: Implement error when user does not exist
|
||||
if (!Arrays.equals(credentials.getPasswordHash(), user.getPasswordHash())) {
|
||||
// TODO: Wrong Password Response
|
||||
if (!Arrays.equals(credentials.getPasswordHash(), user.getPasswordHash())) // TODO: Wrong Password Response
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return user;
|
||||
}
|
||||
|
Reference in New Issue
Block a user