diff --git a/data/dbus-interfaces/org.freedesktop.login1.Manager.xml b/data/dbus-interfaces/org.freedesktop.login1.Manager.xml index 647afc6cf..f40d498dc 100644 --- a/data/dbus-interfaces/org.freedesktop.login1.Manager.xml +++ b/data/dbus-interfaces/org.freedesktop.login1.Manager.xml @@ -20,6 +20,12 @@ + + + + + + diff --git a/js/misc/loginManager.js b/js/misc/loginManager.js index 0f9ee1703..55e928986 100644 --- a/js/misc/loginManager.js +++ b/js/misc/loginManager.js @@ -158,6 +158,23 @@ var LoginManagerSystemd = class { }); } + canRebootToBootLoaderMenu(asyncCallback) { + this._proxy.CanRebootToBootLoaderMenuRemote((result, error) => { + if (error) { + asyncCallback(false, false); + } else { + const needsAuth = result[0] === 'challenge'; + const canRebootToBootLoaderMenu = needsAuth || result[0] === 'yes'; + asyncCallback(canRebootToBootLoaderMenu, needsAuth); + } + }); + } + + setRebootToBootLoaderMenu() { + /* Parameter is timeout in usec, show to menu for 60 seconds */ + this._proxy.SetRebootToBootLoaderMenuRemote(60000000); + } + listSessions(asyncCallback) { this._proxy.ListSessionsRemote((result, error) => { if (error) @@ -203,6 +220,13 @@ var LoginManagerDummy = class { asyncCallback(false, false); } + canRebootToBootLoaderMenu(asyncCallback) { + asyncCallback(false, false); + } + + setRebootToBootLoaderMenu() { + } + listSessions(asyncCallback) { asyncCallback([]); }