@Override public Long getVersion(UserInfo value) { return value.getConfig().getVersion(); }
@Override public User apply(UserInfo input) { return fromUserConfig(input.getConfig()); }};
@Override public String getTag(UserInfo value) { return value.getConfig().getTag(); }
@Override public void setTag(UserInfo value, String tag) { value.getConfig().setTag(tag); }
@Override public void setVersion(UserInfo value, Long version) { value.getConfig().setVersion(version); }
@Override public void deleteUser(final String userName, String version) throws UserNotFoundException, IOException { final UserInfo info = findUserByUserName(userName); if (info != null) { userStore.delete(info.getConfig().getUid(), version); if (!getAllUsers(1).iterator().hasNext()) { anyUserFound.set(false); } } else { throw new UserNotFoundException(userName); } }
@Override public User getUser(String userName) throws UserNotFoundException { if (SystemUser.SYSTEM_USER.getUserName().equals(userName)) { return SystemUser.SYSTEM_USER; } final UserInfo userInfo = findUserByUserName(userName); if (userInfo == null) { throw new UserNotFoundException(userName); } return fromUserConfig(userInfo.getConfig()); }
@Override public User getUser(UID uid) throws UserNotFoundException { final UserInfo userInfo = userStore.get(uid); if (userInfo == null) { throw new UserNotFoundException(uid); } return fromUserConfig(userInfo.getConfig()); }
/** * Used only by command line for set-password * @param userName username of user whose password is being reset * @param password password * @throws IllegalArgumentException if user does not exist or password doesn't fit minimum requirements */ public void setPassword(String userName, String password) throws IllegalArgumentException { validatePassword(password); UserInfo info = findUserByUserName(userName); if (info == null) { throw new IllegalArgumentException(format("user %s does not exist", userName)); } info.setAuth(buildUserAuth(info.getConfig().getUid(), password)); userStore.put(info.getConfig().getUid(), info); }
@Override public User updateUser(final User userGroup, final String authKey) throws IOException, IllegalArgumentException, UserNotFoundException { UserConfig userConfig = toUserConfig(userGroup); final String userName = userConfig.getUserName(); final UserInfo oldUserInfo = findUserByUserName(userName); if (oldUserInfo == null) { throw new UserNotFoundException(userName); } merge(userConfig, oldUserInfo.getConfig()); userConfig.setModifiedAt(System.currentTimeMillis()); UserInfo newUserInfo = new UserInfo(); newUserInfo.setConfig(userConfig); if(authKey != null){ validatePassword(authKey); newUserInfo.setAuth(buildUserAuth(oldUserInfo.getConfig().getUid(), authKey)); } else { newUserInfo.setAuth(oldUserInfo.getAuth()); } userStore.put(userConfig.getUid(), newUserInfo); // Return the new state return fromUserConfig(userConfig); }
@Override public void convert(DocumentWriter writer, UID key, UserInfo userInfo) { UserConfig userConfig = userInfo.getConfig(); writer.write(UserIndexKeys.UID, userConfig.getUid().getId()); writer.write(UserIndexKeys.NAME, userConfig.getUserName()); writer.write(UserIndexKeys.FIRST_NAME, userConfig.getFirstName()); writer.write(UserIndexKeys.LAST_NAME, userConfig.getLastName()); writer.write(UserIndexKeys.EMAIL, userConfig.getEmail()); } }