@Override public User createUser(final User userConfig, final String authKey) throws IOException, IllegalArgumentException { final String userName = userConfig.getUserName(); if (findUserByUserName(userName) != null) { throw UserException.validationError() .message("User [%s] already exists", userName) .build(logger); } validatePassword(authKey); UserConfig newUser = toUserConfig(userConfig) .setUid(new UID(UUID.randomUUID().toString())) .setCreatedAt(System.currentTimeMillis()) .setModifiedAt(userConfig.getCreatedAt()) .setTag(null); UserInfo userInfo = new UserInfo(); userInfo.setConfig(newUser); userInfo.setAuth(buildUserAuth(newUser.getUid(), authKey)); userStore.put(newUser.getUid(), userInfo); // Return the new state return fromUserConfig(newUser); }
protected UserConfig toUserConfig(User user) { return new UserConfig() .setUid(user.getUID()) .setUserName(user.getUserName()) .setFirstName(user.getFirstName()) .setLastName(user.getLastName()) .setEmail(user.getEmail()) .setCreatedAt(user.getCreatedAt()) .setModifiedAt(user.getModifiedAt()) .setTag(user.getVersion()); }
private void merge(UserConfig newConfig, UserConfig oldConfig) { newConfig.setUid(oldConfig.getUid()); if (newConfig.getCreatedAt() == null) { newConfig.setCreatedAt(oldConfig.getCreatedAt()); } if (newConfig.getEmail() == null) { newConfig.setEmail(oldConfig.getEmail()); } if (newConfig.getFirstName() == null) { newConfig.setFirstName(oldConfig.getFirstName()); } if (newConfig.getLastName() == null) { newConfig.setLastName(oldConfig.getLastName()); } if (newConfig.getUserName() == null) { newConfig.setUserName(oldConfig.getUserName()); } if (newConfig.getGroupMembershipsList() == null) { newConfig.setGroupMembershipsList(oldConfig.getGroupMembershipsList()); } if (newConfig.getTag() == null) { newConfig.setTag(oldConfig.getTag()); } }