code: def get_user_info(user):
      
      user = api.get_user(user)
      current = api.get_current_user()
  
      if api.is_anonymous():
          return {
              "username": current.getUserName(),
              "authenticated": False,
              "roles": current.getRoles(),
              "api_url": api.url_for("plone.jsonapi.routes.users", username="current"),
          }
  
      # nothing to do
      if user is None:
          logger.warn("No user found for {}".format(user))
          return None
  
      # plone user
      pu = user.getUser()
  
      info = {
          "username": user.getUserName(),
          "roles": user.getRoles(),
          "groups": pu.getGroups(),
          "authenticated": current == user,
          "api_url": api.url_for("senaite.jsonapi.v1.users", username=user.getId()),
      }
  
      for k, v in api.get_user_properties(user).items():
          if api.is_date(v):
              v = api.to_iso_date(v)
          if not api.is_json_serializable(v):
              logger.warn("User property '{}' is not JSON serializable".format(k))
              continue
          info[k] = v
  
      return info
docs: Get the user information