code: public UserImpl readUser(Node userNode) throws Exception
     {
        UserImpl user = new UserImpl(userNode.getName());
  
        Date creationDate = utils.readDate(userNode, UserProperties.JOS_CREATED_DATE);
        Date lastLoginTime = utils.readDate(userNode, UserProperties.JOS_LAST_LOGIN_TIME);
        String email = utils.readString(userNode, UserProperties.JOS_EMAIL);
        String password = utils.readString(userNode, UserProperties.JOS_PASSWORD);
        String firstName = utils.readString(userNode, UserProperties.JOS_FIRST_NAME);
        String lastName = utils.readString(userNode, UserProperties.JOS_LAST_NAME);
        String displayName = utils.readString(userNode, UserProperties.JOS_DISPLAY_NAME);
        boolean enabled = userNode.canAddMixin(JCROrganizationServiceImpl.JOS_DISABLED);
  
        user.setInternalId(userNode.getUUID());
        user.setCreatedDate(creationDate);
        user.setLastLoginTime(lastLoginTime);
        user.setEmail(email);
        user.setPassword(password);
        user.setFirstName(firstName);
        user.setLastName(lastName);
        user.setDisplayName(displayName);
        user.setEnabled(enabled);
  
        return user;
     }
docs: Read user properties from the node in the storage.
  
  @param userNode
  the node where user properties are stored
  @return {@link User}