<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <c:include name="act/act.h"/>
  <namespace name="AccountsService"
             version="1.0"
             shared-library="libaccountsservice.so.0"
             c:identifier-prefixes="Act"
             c:symbol-prefixes="act">
    <class name="User"
           c:symbol-prefix="user"
           c:type="ActUser"
           parent="GObject.Object"
           glib:type-name="ActUser"
           glib:get-type="act_user_get_type"
           glib:type-struct="UserClass">
      <doc xml:space="preserve">Represents a user account on the system.</doc>
      <method name="collate" c:identifier="act_user_collate">
        <doc xml:space="preserve">Organize the user by login frequency and names.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">negative if @user1 is before @user2, zero if equal
   or positive if @user1 is after @user2</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="user1" transfer-ownership="none">
            <doc xml:space="preserve">a user</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
          <parameter name="user2" transfer-ownership="none">
            <doc xml:space="preserve">a user</doc>
            <type name="User" c:type="ActUser*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_account_type" c:identifier="act_user_get_account_type">
        <doc xml:space="preserve">Retrieves the account type of @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #ActUserAccountType</doc>
          <type name="UserAccountType" c:type="ActUserAccountType"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to examine.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_automatic_login"
              c:identifier="act_user_get_automatic_login">
        <doc xml:space="preserve">Returns whether or not #ActUser is automatically logged in at boot time.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE or %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUser</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_email" c:identifier="act_user_get_email">
        <doc xml:space="preserve">Retrieves the email address set by @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a pointer to an array of characters which must not be modified or
 freed, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to examine.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_home_dir" c:identifier="act_user_get_home_dir">
        <doc xml:space="preserve">Retrieves the home directory for @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a pointer to an array of characters which must not be modified or
 freed, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to examine.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_file" c:identifier="act_user_get_icon_file">
        <doc xml:space="preserve">Returns the path to the account icon belonging to @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a path to an icon</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUser</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_language" c:identifier="act_user_get_language">
        <doc xml:space="preserve">Returns the path to the configured locale of @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a path to an icon</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUser</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_location" c:identifier="act_user_get_location">
        <doc xml:space="preserve">Retrieves the location set by @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a pointer to an array of characters which must not be modified or
 freed, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to examine.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_locked" c:identifier="act_user_get_locked">
        <doc xml:space="preserve">Returns whether or not the #ActUser account is locked.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE or %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUser</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_login_frequency"
              c:identifier="act_user_get_login_frequency">
        <doc xml:space="preserve">Returns the number of times @user has logged in.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the login frequency</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUser</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_login_history"
              c:identifier="act_user_get_login_history">
        <doc xml:space="preserve">Returns the login history for @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a pointer to GVariant of type "a(xxa{sv})"
which must not be modified or freed, or %NULL.</doc>
          <type name="GLib.Variant" c:type="const GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUser</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_login_time" c:identifier="act_user_get_login_time">
        <doc xml:space="preserve">Returns the last login time for @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the login time</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUser</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_num_sessions" c:identifier="act_user_get_num_sessions">
        <doc xml:space="preserve">Get the number of sessions for a user that are graphical and on the
same seat as the session of the calling process.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of sessions</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a user</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_num_sessions_anywhere"
              c:identifier="act_user_get_num_sessions_anywhere">
        <doc xml:space="preserve">Get the number of sessions for a user on any seat of any type.
See also act_user_get_num_sessions().

(Currently, this function is only implemented for systemd-logind.
For ConsoleKit, it is equivalent to act_user_get_num_sessions.)</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the number of sessions</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a user</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_object_path" c:identifier="act_user_get_object_path">
        <doc xml:space="preserve">Returns the user accounts service object path of @user,
or %NULL if @user doesn't have an object path associated
with it.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the object path of the user</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUser</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_password_hint"
              c:identifier="act_user_get_password_hint">
        <doc xml:space="preserve">Retrieves the password hint set by @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a pointer to an array of characters which must not be modified or
 freed, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to examine.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_password_mode"
              c:identifier="act_user_get_password_mode">
        <doc xml:space="preserve">Retrieves the password mode of @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a #ActUserPasswordMode</doc>
          <type name="UserPasswordMode" c:type="ActUserPasswordMode"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to examine.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_primary_session_id"
              c:identifier="act_user_get_primary_session_id">
        <doc xml:space="preserve">Returns the id of the primary session of @user, or %NULL if @user
has no primary session.  The primary session will always be
graphical and will be chosen from the sessions on the same seat as
the seat of the session of the calling process.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the id of the primary session of the user</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUser</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_real_name" c:identifier="act_user_get_real_name">
        <doc xml:space="preserve">Retrieves the display name of @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a pointer to an array of characters which must not be modified or
 freed, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to examine.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_shell" c:identifier="act_user_get_shell">
        <doc xml:space="preserve">Retrieves the shell assigned to @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a pointer to an array of characters which must not be modified or
 freed, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to examine.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uid" c:identifier="act_user_get_uid">
        <doc xml:space="preserve">Retrieves the ID of @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a pointer to an array of characters which must not be modified or
 freed, or %NULL.</doc>
          <type name="guint" c:type="uid_t"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to examine.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_name" c:identifier="act_user_get_user_name">
        <doc xml:space="preserve">Retrieves the login name of @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a pointer to an array of characters which must not be modified or
 freed, or %NULL.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to examine.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_x_session" c:identifier="act_user_get_x_session">
        <doc xml:space="preserve">Returns the path to the configured X session for @user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a path to an icon</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUser</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_loaded" c:identifier="act_user_is_loaded">
        <doc xml:space="preserve">Determines whether or not the user object is loaded and ready to read from.
#ActUserManager:is-loaded property must be %TRUE before calling
act_user_manager_list_users()</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE or %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUser</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_local_account" c:identifier="act_user_is_local_account">
        <doc xml:space="preserve">Retrieves whether the user is a local account or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the user is local</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to examine.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_logged_in" c:identifier="act_user_is_logged_in">
        <doc xml:space="preserve">Returns whether or not #ActUser is currently graphically logged in
on the same seat as the seat of the session of the calling process.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE or %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUser</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_logged_in_anywhere"
              c:identifier="act_user_is_logged_in_anywhere">
        <doc xml:space="preserve">Returns whether or not #ActUser is currently logged in in any way
whatsoever.  See also act_user_is_logged_in().

(Currently, this function is only implemented for systemd-logind.
For ConsoleKit, it is equivalent to act_user_is_logged_in.)</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE or %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUser</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_nonexistent" c:identifier="act_user_is_nonexistent">
        <doc xml:space="preserve">Retrieves whether the user is nonexistent or not.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the user is nonexistent</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to examine.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_system_account"
              c:identifier="act_user_is_system_account">
        <doc xml:space="preserve">Returns whether or not #ActUser represents a 'system account' like
'root' or 'nobody'.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE or %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUser</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_account_type" c:identifier="act_user_set_account_type">
        <doc xml:space="preserve">Changes the account type of @user.

Note this function is synchronous and ignores errors.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to alter.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
          <parameter name="account_type" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserAccountType</doc>
            <type name="UserAccountType" c:type="ActUserAccountType"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_automatic_login"
              c:identifier="act_user_set_automatic_login">
        <doc xml:space="preserve">If enabled is set to %TRUE then this user will automatically be logged in
at boot up time.  Only one user can be configured to auto login at any given
time, so subsequent calls to act_user_set_automatic_login() override previous
calls.

Note this function is synchronous and ignores errors.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to alter</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
          <parameter name="enabled" transfer-ownership="none">
            <doc xml:space="preserve">whether or not to autologin for user.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_email" c:identifier="act_user_set_email">
        <doc xml:space="preserve">Assigns a new email to @user.

Note this function is synchronous and ignores errors.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to alter.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
          <parameter name="email" transfer-ownership="none">
            <doc xml:space="preserve">an email address</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_file" c:identifier="act_user_set_icon_file">
        <doc xml:space="preserve">Assigns a new icon for @user.

Note this function is synchronous and ignores errors.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to alter.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
          <parameter name="icon_file" transfer-ownership="none">
            <doc xml:space="preserve">path to an icon</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_language" c:identifier="act_user_set_language">
        <doc xml:space="preserve">Assigns a new locale for @user.

Note this function is synchronous and ignores errors.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to alter.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
          <parameter name="language" transfer-ownership="none">
            <doc xml:space="preserve">a locale (e.g. en_US.utf8)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_location" c:identifier="act_user_set_location">
        <doc xml:space="preserve">Assigns a new location for @user.

Note this function is synchronous and ignores errors.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to alter.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">a location</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_locked" c:identifier="act_user_set_locked">
        <doc xml:space="preserve">Note this function is synchronous and ignores errors.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to alter.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
          <parameter name="locked" transfer-ownership="none">
            <doc xml:space="preserve">whether or not the account is locked</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_password" c:identifier="act_user_set_password">
        <doc xml:space="preserve">Changes the password of @user to @password.
@hint is displayed to the user if they forget the password.

Note this function is synchronous and ignores errors.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to alter.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
          <parameter name="password" transfer-ownership="none">
            <doc xml:space="preserve">a password</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="hint" transfer-ownership="none">
            <doc xml:space="preserve">a hint to help user recall password</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_password_mode"
              c:identifier="act_user_set_password_mode">
        <doc xml:space="preserve">Changes the password of @user.  If @password_mode is
ACT_USER_PASSWORD_MODE_SET_AT_LOGIN then the user will
be asked for a new password at the next login.  If @password_mode
is ACT_USER_PASSWORD_MODE_NONE then the user will not require
a password to log in.

Note this function is synchronous and ignores errors.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to alter.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
          <parameter name="password_mode" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserPasswordMode</doc>
            <type name="UserPasswordMode" c:type="ActUserPasswordMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_real_name" c:identifier="act_user_set_real_name">
        <doc xml:space="preserve">Assigns a new name for @user.

Note this function is synchronous and ignores errors.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to alter.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
          <parameter name="real_name" transfer-ownership="none">
            <doc xml:space="preserve">a new name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_user_name" c:identifier="act_user_set_user_name">
        <doc xml:space="preserve">Assigns a new username for @user.

Note this function is synchronous and ignores errors.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to alter.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
          <parameter name="user_name" transfer-ownership="none">
            <doc xml:space="preserve">a new user name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_x_session" c:identifier="act_user_set_x_session">
        <doc xml:space="preserve">Assigns a new x session for @user.

Note this function is synchronous and ignores errors.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user object to alter.</doc>
            <type name="User" c:type="ActUser*"/>
          </instance-parameter>
          <parameter name="x_session" transfer-ownership="none">
            <doc xml:space="preserve">an x session (e.g. gnome)</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <property name="account-type" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="automatic-login" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="email" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="home-directory" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="icon-file" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="is-loaded" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="language" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="local-account" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="location" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="locked" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="login-frequency" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="login-history" transfer-ownership="none">
        <type name="GLib.Variant"/>
      </property>
      <property name="login-time" transfer-ownership="none">
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="nonexistent" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="password-hint" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="password-mode" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="real-name" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="shell" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="system-account" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="uid" transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="user-name" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="x-session" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="changed" when="last">
        <doc xml:space="preserve">Emitted when the user accounts changes in some way.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="sessions-changed" when="last">
        <doc xml:space="preserve">Emitted when the list of sessions for this user changes.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <enumeration name="UserAccountType"
                 glib:type-name="ActUserAccountType"
                 glib:get-type="act_user_account_type_get_type"
                 c:type="ActUserAccountType">
      <doc xml:space="preserve">Type of user account</doc>
      <member name="standard"
              value="0"
              c:identifier="ACT_USER_ACCOUNT_TYPE_STANDARD"
              glib:nick="standard">
        <doc xml:space="preserve">Normal non-administrative user</doc>
      </member>
      <member name="administrator"
              value="1"
              c:identifier="ACT_USER_ACCOUNT_TYPE_ADMINISTRATOR"
              glib:nick="administrator">
        <doc xml:space="preserve">Administrative user</doc>
      </member>
    </enumeration>
    <record name="UserClass"
            c:type="ActUserClass"
            disguised="1"
            glib:is-gtype-struct-for="User">
    </record>
    <class name="UserManager"
           c:symbol-prefix="user_manager"
           c:type="ActUserManager"
           parent="GObject.Object"
           glib:type-name="ActUserManager"
           glib:get-type="act_user_manager_get_type"
           glib:type-struct="UserManagerClass">
      <doc xml:space="preserve">A user manager object.</doc>
      <function name="get_default" c:identifier="act_user_manager_get_default">
        <doc xml:space="preserve">Returns the user manager singleton instance.  Calling this function will
automatically being loading the user list if it isn't loaded already.
The #ActUserManager:is-loaded property will be set to %TRUE when the users
are finished loading and then act_user_manager_list_users() can be called.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">user manager object</doc>
          <type name="UserManager" c:type="ActUserManager*"/>
        </return-value>
      </function>
      <virtual-method name="user_added">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user_manager" transfer-ownership="none">
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="user" transfer-ownership="none">
            <type name="User" c:type="ActUser*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="user_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user_manager" transfer-ownership="none">
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="user" transfer-ownership="none">
            <type name="User" c:type="ActUser*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="user_is_logged_in_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user_manager" transfer-ownership="none">
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="user" transfer-ownership="none">
            <type name="User" c:type="ActUser*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="user_removed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="user_manager" transfer-ownership="none">
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="user" transfer-ownership="none">
            <type name="User" c:type="ActUser*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="activate_user_session"
              c:identifier="act_user_manager_activate_user_session">
        <doc xml:space="preserve">Activate the session for a given user.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether successfully activated</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">the user manager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the user to activate</doc>
            <type name="User" c:type="ActUser*"/>
          </parameter>
        </parameters>
      </method>
      <method name="cache_user"
              c:identifier="act_user_manager_cache_user"
              throws="1">
        <doc xml:space="preserve">Caches a user account so it shows up via act_user_manager_list_users().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">user object</doc>
          <type name="User" c:type="ActUser*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserManager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="username" transfer-ownership="none">
            <doc xml:space="preserve">a user name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="cache_user_async"
              c:identifier="act_user_manager_cache_user_async"
              version="0.6.27">
        <doc xml:space="preserve">Asynchronously caches a user account so it shows up via
act_user_manager_list_users().

For more details, see act_user_manager_cache_user(), which
is the synchronous version of this call.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserManager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="username" transfer-ownership="none">
            <doc xml:space="preserve">a unix user name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional #GCancellable object,
    %NULL to ignore</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <doc xml:space="preserve">a #GAsyncReadyCallback to call
    when the request is satisfied</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="cache_user_finish"
              c:identifier="act_user_manager_cache_user_finish"
              version="0.6.27"
              throws="1">
        <doc xml:space="preserve">Finishes an asynchronous user caching.

See act_user_manager_cache_user_async().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">user object</doc>
          <type name="User" c:type="ActUser*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserManager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="can_switch" c:identifier="act_user_manager_can_switch">
        <doc xml:space="preserve">Check whether the user can switch to another session.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether we can switch to another session</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">the user manager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_user"
              c:identifier="act_user_manager_create_user"
              throws="1">
        <doc xml:space="preserve">Creates a user account on the system.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">user object</doc>
          <type name="User" c:type="ActUser*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserManager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="username" transfer-ownership="none">
            <doc xml:space="preserve">a unix user name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="fullname" transfer-ownership="none">
            <doc xml:space="preserve">a unix GECOS value</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="accounttype" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserAccountType</doc>
            <type name="UserAccountType" c:type="ActUserAccountType"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_user_async"
              c:identifier="act_user_manager_create_user_async"
              version="0.6.27">
        <doc xml:space="preserve">Asynchronously creates a user account on the system.

For more details, see act_user_manager_create_user(), which
is the synchronous version of this call.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserManager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="username" transfer-ownership="none">
            <doc xml:space="preserve">a unix user name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="fullname" transfer-ownership="none">
            <doc xml:space="preserve">a unix GECOS value</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="accounttype" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserAccountType</doc>
            <type name="UserAccountType" c:type="ActUserAccountType"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional #GCancellable object,
    %NULL to ignore</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="5">
            <doc xml:space="preserve">a #GAsyncReadyCallback to call
    when the request is satisfied</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_user_finish"
              c:identifier="act_user_manager_create_user_finish"
              version="0.6.27"
              throws="1">
        <doc xml:space="preserve">Finishes an asynchronous user creation.

See act_user_manager_create_user_async().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">user object</doc>
          <type name="User" c:type="ActUser*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserManager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_user"
              c:identifier="act_user_manager_delete_user"
              throws="1">
        <doc xml:space="preserve">Deletes a user account on the system.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the user account was successfully deleted</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserManager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">an #ActUser object</doc>
            <type name="User" c:type="ActUser*"/>
          </parameter>
          <parameter name="remove_files" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE to delete the users home directory</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_user_async"
              c:identifier="act_user_manager_delete_user_async"
              version="0.6.27">
        <doc xml:space="preserve">Asynchronously deletes a user account from the system.

For more details, see act_user_manager_delete_user(), which
is the synchronous version of this call.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserManager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUser object</doc>
            <type name="User" c:type="ActUser*"/>
          </parameter>
          <parameter name="remove_files" transfer-ownership="none">
            <doc xml:space="preserve">%TRUE to delete the users home directory</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional #GCancellable object,
    %NULL to ignore</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">a #GAsyncReadyCallback to call
    when the request is satisfied</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <doc xml:space="preserve">the data to pass to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="delete_user_finish"
              c:identifier="act_user_manager_delete_user_finish"
              version="0.6.27"
              throws="1">
        <doc xml:space="preserve">Finishes an asynchronous user account deletion.

See act_user_manager_delete_user_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the user account was successfully deleted</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserManager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_user" c:identifier="act_user_manager_get_user">
        <doc xml:space="preserve">Retrieves a pointer to the #ActUser object for the login @username
from @manager. Trying to use this object before its
#ActUser:is-loaded property is %TRUE will result in undefined
behavior.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#ActUser object</doc>
          <type name="User" c:type="ActUser*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">the manager to query.</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="username" transfer-ownership="none">
            <doc xml:space="preserve">the login name of the user to get.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_user_by_id"
              c:identifier="act_user_manager_get_user_by_id">
        <doc xml:space="preserve">Retrieves a pointer to the #ActUser object for the user with the
given uid from @manager. Trying to use this object before its
#ActUser:is-loaded property is %TRUE will result in undefined
behavior.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">#ActUser object</doc>
          <type name="User" c:type="ActUser*"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">the manager to query.</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the uid of the user to get.</doc>
            <type name="guint" c:type="uid_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="goto_login_session"
              c:identifier="act_user_manager_goto_login_session">
        <doc xml:space="preserve">Switch the display to the login manager.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether successful or not</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">the user manager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_users" c:identifier="act_user_manager_list_users">
        <doc xml:space="preserve">Get a list of system user accounts</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">List of #ActUser objects</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="User"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserManager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="no_service" c:identifier="act_user_manager_no_service">
        <doc xml:space="preserve">Check whether or not the accounts service is running.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">whether or not accounts service is running</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserManager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="uncache_user"
              c:identifier="act_user_manager_uncache_user"
              throws="1">
        <doc xml:space="preserve">Releases all metadata about a user account, including icon,
language and session. If the user account is from a remote
server and the user has never logged in before, then that
account will no longer show up in ListCachedUsers() output.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if successful, otherwise %FALSE</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserManager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="username" transfer-ownership="none">
            <doc xml:space="preserve">a user name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="uncache_user_async"
              c:identifier="act_user_manager_uncache_user_async">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="username" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="3">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data" transfer-ownership="none">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="uncache_user_finish"
              c:identifier="act_user_manager_uncache_user_finish"
              version="0.6.39"
              throws="1">
        <doc xml:space="preserve">Finishes an asynchronous user uncaching.

See act_user_manager_uncache_user_async().</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the user account was successfully uncached</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="manager" transfer-ownership="none">
            <doc xml:space="preserve">a #ActUserManager</doc>
            <type name="UserManager" c:type="ActUserManager*"/>
          </instance-parameter>
          <parameter name="result" transfer-ownership="none">
            <doc xml:space="preserve">a #GAsyncResult</doc>
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </method>
      <property name="exclude-usernames-list"
                writable="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="has-multiple-users" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="include-usernames-list"
                writable="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="is-loaded" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="UserManagerPrivate" c:type="ActUserManagerPrivate*"/>
      </field>
      <glib:signal name="user-added" when="last">
        <doc xml:space="preserve">Emitted when a user is added to the user manager.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the #ActUser that was added</doc>
            <type name="User"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="user-changed" when="last">
        <doc xml:space="preserve">One of the users has changed</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the #ActUser that changed</doc>
            <type name="User"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="user-is-logged-in-changed" when="last">
        <doc xml:space="preserve">One of the users has logged in or out.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the #ActUser that changed login status</doc>
            <type name="User"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="user-removed" when="last">
        <doc xml:space="preserve">Emitted when a user is removed from the user manager.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="user" transfer-ownership="none">
            <doc xml:space="preserve">the #ActUser that was removed</doc>
            <type name="User"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="UserManagerClass"
            c:type="ActUserManagerClass"
            glib:is-gtype-struct-for="UserManager">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="user_added">
        <callback name="user_added">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="user_manager" transfer-ownership="none">
              <type name="UserManager" c:type="ActUserManager*"/>
            </parameter>
            <parameter name="user" transfer-ownership="none">
              <type name="User" c:type="ActUser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="user_removed">
        <callback name="user_removed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="user_manager" transfer-ownership="none">
              <type name="UserManager" c:type="ActUserManager*"/>
            </parameter>
            <parameter name="user" transfer-ownership="none">
              <type name="User" c:type="ActUser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="user_is_logged_in_changed">
        <callback name="user_is_logged_in_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="user_manager" transfer-ownership="none">
              <type name="UserManager" c:type="ActUserManager*"/>
            </parameter>
            <parameter name="user" transfer-ownership="none">
              <type name="User" c:type="ActUser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="user_changed">
        <callback name="user_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="user_manager" transfer-ownership="none">
              <type name="UserManager" c:type="ActUserManager*"/>
            </parameter>
            <parameter name="user" transfer-ownership="none">
              <type name="User" c:type="ActUser*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="UserManagerError"
                 glib:type-name="ActUserManagerError"
                 glib:get-type="act_user_manager_error_get_type"
                 c:type="ActUserManagerError"
                 glib:error-domain="act_user_manager_error">
      <doc xml:space="preserve">Various error codes returned by the accounts service.</doc>
      <member name="failed"
              value="0"
              c:identifier="ACT_USER_MANAGER_ERROR_FAILED"
              glib:nick="failed">
        <doc xml:space="preserve">Generic failure</doc>
      </member>
      <member name="user_exists"
              value="1"
              c:identifier="ACT_USER_MANAGER_ERROR_USER_EXISTS"
              glib:nick="user-exists">
        <doc xml:space="preserve">The user already exists</doc>
      </member>
      <member name="user_does_not_exist"
              value="2"
              c:identifier="ACT_USER_MANAGER_ERROR_USER_DOES_NOT_EXIST"
              glib:nick="user-does-not-exist">
        <doc xml:space="preserve">The user does not exist</doc>
      </member>
      <member name="permission_denied"
              value="3"
              c:identifier="ACT_USER_MANAGER_ERROR_PERMISSION_DENIED"
              glib:nick="permission-denied">
        <doc xml:space="preserve">Permission denied</doc>
      </member>
      <member name="not_supported"
              value="4"
              c:identifier="ACT_USER_MANAGER_ERROR_NOT_SUPPORTED"
              glib:nick="not-supported">
        <doc xml:space="preserve">Operation not supported</doc>
      </member>
      <function name="quark" c:identifier="act_user_manager_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="UserManagerPrivate"
            c:type="ActUserManagerPrivate"
            disguised="1">
    </record>
    <enumeration name="UserPasswordMode"
                 glib:type-name="ActUserPasswordMode"
                 glib:get-type="act_user_password_mode_get_type"
                 c:type="ActUserPasswordMode">
      <doc xml:space="preserve">Mode for setting the user's password.</doc>
      <member name="regular"
              value="0"
              c:identifier="ACT_USER_PASSWORD_MODE_REGULAR"
              glib:nick="regular">
        <doc xml:space="preserve">Password set normally</doc>
      </member>
      <member name="set_at_login"
              value="1"
              c:identifier="ACT_USER_PASSWORD_MODE_SET_AT_LOGIN"
              glib:nick="set-at-login">
        <doc xml:space="preserve">Password will be chosen at next login</doc>
      </member>
      <member name="none"
              value="2"
              c:identifier="ACT_USER_PASSWORD_MODE_NONE"
              glib:nick="none">
        <doc xml:space="preserve">No password set</doc>
      </member>
    </enumeration>
    <function name="user_manager_error_quark"
              c:identifier="act_user_manager_error_quark"
              moved-to="UserManagerError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
