<?xml version="1.0"?>
<!--
 Copyright (C) 2016 Red Hat, Inc.

 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 2 of the License, or (at your option) any later version.

 This library is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public
 License along with this library. If not, see <http://www.gnu.org/licenses/>.

 Author: Matthias Clasen <mclasen@redhat.com>
-->

<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
  <!--
      org.freedesktop.impl.portal.Account:
      @short_description: Backend for the portal for obtaining user information

      This Account portal lets sandboxed applications query basic
      information about the user, like their name and avatar photo.
      The portal backend will present the user with a dialog to confirm
      which (if any) information to share.
  -->
  <interface name="org.freedesktop.impl.portal.Account">
    <!--
        GetUserInformation:
        @handle: Object path for the #org.freedesktop.portal.Request object representing this call
        @app_id: App id of the application
        @window: Identifier for the window
        @options: Vardict with optional further information
        @response: Numeric response
        @results: Vardict with the results of the call

        Gets information about the user.

        Supported keys in the @options vardict include:
        <variablelist>
          <varlistentry>
            <term>reason s</term>
            <listitem><para>
              A string that can be shown in the dialog to expain why the information is needed.
              This should be a complete sentence that explains what the application will do with
              the returned information, for example: Allows your personal information to be included
              with recipes you share with your friends.
            </para></listitem>
          </varlistentry>
        </variablelist>

        The following results get returned via the @results vardict:
        <variablelist>
          <varlistentry>
            <term>id s</term>
            <listitem><para>
              The user id.
            </para></listitem>
          </varlistentry>
          <varlistentry>
            <term>name s</term>
            <listitem>
              <para>
                The users real name.
              </para>
            </listitem>
          </varlistentry>
          <varlistentry>
            <term>image s</term>
            <listitem>
              <para>
                The uri of an image file for the users avatar photo.
              </para>
            </listitem>
          </varlistentry>
        </variablelist>
    -->
    <method name="GetUserInformation">
      <arg type="o" name="handle" direction="in"/>
      <arg type="s" name="app_id" direction="in"/>
      <arg type="s" name="window" direction="in"/>
      <arg type="a{sv}" name="options" direction="in"/>
      <arg type="u" name="response" direction="out"/>
      <arg type="a{sv}" name="results" direction="out"/>
    </method>
  </interface>
</node>
