@Override public Object process(Entry<String, User> entry) { logger.debug("process.enter; entry: {}", entry); if (entry.getValue() != null) { User user = entry.getValue(); if (user.getVersion() == getVersion()) { entry.setValue(null); auditEntity(AuditType.delete, user); return user; } else { // throw ex ? logger.warn("process; outdated user version: {}; entry version: {}; process terminated", getVersion(), entry.getValue().getVersion()); } } return null; }
/** * {@inheritDoc} */ @Override public String toString() { return "User [login=" + login + ", version=" + getVersion() + ", active=" + active + ", created at=" + getCreatedAt() + ", by=" + getCreatedBy() + "]"; }
@Override public Object process(Entry<String, User> entry) { logger.debug("process.enter; entry: {}", entry); if (entry.getValue() != null) { User user = entry.getValue(); if (user.getVersion() == getVersion()) { String pwd = Encryptor.encrypt(oldPassword); if (pwd.equals(user.getPassword())) { pwd = Encryptor.encrypt(newPassword); user.setPassword(pwd); user.updateVersion(getAdmin()); entry.setValue(user); auditEntity(AuditType.update, user); return user; } else { logger.warn("process; existing password does not match for user: {}", entry.getKey()); } } // else .. } return null; }
@ManagedOperation(description="Delete User") @ManagedOperationParameters({ @ManagedOperationParameter(name = "login", description = "User login")}) public boolean deleteUser(String login) { User user = entityCache.get(login); if (user != null) { Object result = entityCache.executeOnKey(login, new UserRemover(user.getVersion(), getCurrentUser())); logger.debug("deleteUser; execution result: {}", result); return result != null; } return false; }
@ManagedOperation(description="Changes User password") @ManagedOperationParameters({ @ManagedOperationParameter(name = "oldPassword", description = "old User's password"), @ManagedOperationParameter(name = "newPassword", description = "new User's password")}) public boolean changePassword(String oldPassword, String newPassword) { User user = getEntity(); if (user != null) { Object result = entityCache.executeOnKey(entityName, new UserUpdater(user.getVersion(), getCurrentUser(), oldPassword, newPassword)); logger.trace("changePassword; execution result: {}", result); return result != null; } return false; }