out b incomplete,
out o bus_path);
ListHomes(out a(susussso) home_areas);
- @org.freedesktop.systemd1.Privileged("true")
ActivateHome(in s user_name,
in s secret);
+ ActivateHomeIfReferenced(in s user_name,
+ in s secret);
@org.freedesktop.systemd1.Privileged("true")
DeactivateHome(in s user_name);
RegisterHome(in s user_record);
in b please_suspend,
out h send_fd);
@org.freedesktop.systemd1.Privileged("true")
+ RefHomeUnrestricted(in s user_name,
+ in b please_suspend,
+ out h send_fd);
+ @org.freedesktop.systemd1.Privileged("true")
ReleaseHome(in s user_name);
InhibitSuspendHome(in s user_name,
out h send_fd);
<variablelist class="dbus-method" generated="True" extra-ref="ActivateHome()"/>
+ <variablelist class="dbus-method" generated="True" extra-ref="ActivateHomeIfReferenced()"/>
+
<variablelist class="dbus-method" generated="True" extra-ref="DeactivateHome()"/>
<variablelist class="dbus-method" generated="True" extra-ref="RegisterHome()"/>
<variablelist class="dbus-method" generated="True" extra-ref="RefHome()"/>
+ <variablelist class="dbus-method" generated="True" extra-ref="RefHomeUnrestricted()"/>
+
<variablelist class="dbus-method" generated="True" extra-ref="ReleaseHome()"/>
<variablelist class="dbus-method" generated="True" extra-ref="InhibitSuspendHome()"/>
<classname>org.freedesktop.home1.Home</classname> interface documented below, but may be called on the
manager object and takes a user name as additional argument, instead.</para>
+ <para><function>ActivateHomeIfReferenced()</function> is identical to
+ <function>ActivateHome()</function>. However, the call only succeeds if the home directory is currently
+ referenced. Useful in conjunction with <function>RefHomeUnrestricted()</function>, which allows
+ creating a reference to a home directory even if the home directory is not active.</para>
+
<para><function>DeactivateHome()</function> deactivates (i.e. unmounts) the home directory of the
specified user. It is equivalent to the <function>Deactivate()</function> method on the
<classname>org.freedesktop.home1.Home</classname> interface documented below.</para>
<function>Ref()</function> on the <classname>org.freedesktop.home1.Home</classname>
interface.</para>
+ <para><function>RefHomeUnrestricted()</function> is identical to <function>RefHome()</function> but
+ succeeds even if the home area is not active currently. This is useful on conjunction with
+ <function>ActivateHomeIfReferenced()</function>.</para>
+
<para><function>ReleaseHome()</function> releases a home directory again, if all file descriptors
referencing it are already closed, that where acquired through <function>AcquireHome()</function> or
<function>RefHome()</function>. Note that this call does not actually cause the deactivation of the
node /org/freedesktop/home1/home {
interface org.freedesktop.home1.Home {
methods:
- @org.freedesktop.systemd1.Privileged("true")
Activate(in s secret);
+ ActivateIfReferenced(in s secret);
@org.freedesktop.systemd1.Privileged("true")
Deactivate();
Unregister();
Ref(in b please_suspend,
out h send_fd);
@org.freedesktop.systemd1.Privileged("true")
+ RefUnrestricted(in b please_suspend,
+ out h send_fd);
+ @org.freedesktop.systemd1.Privileged("true")
Release();
InhibitSuspend(out h send_fd);
properties:
<variablelist class="dbus-method" generated="True" extra-ref="Activate()"/>
+ <variablelist class="dbus-method" generated="True" extra-ref="ActivateIfReferenced()"/>
+
<variablelist class="dbus-method" generated="True" extra-ref="Deactivate()"/>
<variablelist class="dbus-method" generated="True" extra-ref="Unregister()"/>
<variablelist class="dbus-method" generated="True" extra-ref="Ref()"/>
+ <variablelist class="dbus-method" generated="True" extra-ref="RefUnrestricted()"/>
+
<variablelist class="dbus-method" generated="True" extra-ref="Release()"/>
<variablelist class="dbus-method" generated="True" extra-ref="InhibitSuspend()"/>
<refsect2>
<title>Methods</title>
- <para><function>Activate()</function>, <function>Deactivate()</function>,
- <function>Unregister()</function>, <function>Realize()</function>, <function>Remove()</function>,
- <function>Fixate()</function>, <function>Authenticate()</function>, <function>Update()</function>,
- <function>Resize()</function>, <function>ChangePassword()</function>, <function>Lock()</function>,
- <function>Unlock()</function>, <function>Acquire()</function>, <function>Ref()</function>,
- <function>Release()</function>, <function>InhibitSuspend()</function> operate like their matching counterparts on the
+ <para><function>Activate()</function>, <function>ActivateIfReferenced()</function>,
+ <function>Deactivate()</function>, <function>Unregister()</function>, <function>Realize()</function>,
+ <function>Remove()</function>, <function>Fixate()</function>, <function>Authenticate()</function>,
+ <function>Update()</function>, <function>Resize()</function>, <function>ChangePassword()</function>,
+ <function>Lock()</function>, <function>Unlock()</function>, <function>Acquire()</function>,
+ <function>Ref()</function>, <function>RefUnrestricted()</function>, <function>Release()</function>,
+ <function>InhibitSuspend()</function> operate like their matching counterparts on the
<classname>org.freedesktop.home1.Manager</classname> interface (see above). The main difference is that
they are methods of the home directory objects, and hence carry no additional user name
parameter. Which of the two flavors of methods to call depends on the handles to the user known on the
<title>History</title>
<refsect2>
<title>The Manager Object</title>
- <para><function>InhibitSuspendHome()</function> was added in version 256.</para>
+ <para><function>InhibitSuspendHome()</function>, <function>ActivateHomeIfReferenced()</function>, <function>RefHomeUnrestricted()</function> wer added in version 256.</para>
</refsect2>
<refsect2>
<title>Home Objects</title>
- <para><function>InhibitSuspend()</function> was added in version 256.</para>
+ <para><function>InhibitSuspend()</function>, <function>ActivateIfReferenced()</function> and <function>RefUnrestricted()</function> were added in version 256.</para>
</refsect2>
</refsect1>
TakeControl(in b force);
ReleaseControl();
SetType(in s type);
+ SetClass(in s class);
SetDisplay(in s display);
SetTTY(in h tty_fd);
TakeDevice(in u major,
<variablelist class="dbus-method" generated="True" extra-ref="SetType()"/>
+ <variablelist class="dbus-method" generated="True" extra-ref="SetClass()"/>
+
<variablelist class="dbus-method" generated="True" extra-ref="SetDisplay()"/>
<variablelist class="dbus-method" generated="True" extra-ref="SetTTY()"/>
connection. This should help prevent a session from entering an inconsistent state, for example if the
controller crashes. The only argument <varname>type</varname> is the new session type.</para>
+ <para><function>SetClass()</function> allows the caller to change the class of the session dynamically.
+ It may only be called by session's owening user. Currently, this call may be exclusively used to change
+ the class from <literal>user-incomplete</literal> to <literal>user</literal>. The call is synchronous,
+ and will return only once the user's service manager has successfully been started, if necessary. The
+ only argument <varname>type</varname> is the new session type.</para>
+
<para><function>SetDisplay()</function> allows the display name of the graphical session to be changed. This is
useful if the display server is started as part of the session. It can only be called by session's current
controller. If <function>TakeControl()</function> has not been called, this method will fail. The only argument
<title>Session Objects</title>
<para><function>SetDisplay()</function> was added in version 252.</para>
<para><function>SetTTY()</function> was added in version 254.</para>
+ <para><function>SetClass()</function> was added in version 256.</para>
</refsect2>
</refsect1>
</refentry>