def get_user_info(user):
    """Get the user information
    """
    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
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" ) , } if user is None : logger . warn ( "No user found for {}" . format ( user ) ) return None 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
Get the user information