r = varlink_verify_polkit_async(
link,
manager->bus,
- "org.freedesktop.machine1.create-machine",
+ machine->allocate_unit ? "org.freedesktop.machine1.create-machine" : "org.freedesktop.machine1.register-machine",
(const char**) STRV_MAKE("name", machine->name,
"class", machine_class_to_string(machine->class)),
&manager->polkit_registry);
static int method_create_or_register_machine(
Manager *manager,
sd_bus_message *message,
+ const char *polkit_action,
bool read_network,
Machine **ret,
sd_bus_error *error) {
r = bus_verify_polkit_async(
message,
- "org.freedesktop.machine1.create-machine",
+ polkit_action,
details,
&manager->polkit_registry,
error);
assert(message);
- r = method_create_or_register_machine(manager, message, read_network, &m, error);
+ r = method_create_or_register_machine(manager, message, "org.freedesktop.machine1.create-machine", read_network, &m, error);
if (r < 0)
return r;
if (r == 0)
assert(message);
- r = method_create_or_register_machine(manager, message, read_network, &m, error);
+ r = method_create_or_register_machine(manager, message, "org.freedesktop.machine1.register-machine", read_network, &m, error);
if (r < 0)
return r;
if (r == 0)
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
- <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.shell org.freedesktop.login1.login</annotate>
+ <annotate key="org.freedesktop.policykit.imply">org.freedesktop.login1.shell org.freedesktop.login1.login org.freedesktop.machine1.register-machine</annotate>
+ </action>
+
+ <action id="org.freedesktop.machine1.register-machine">
+ <description gettext-domain="systemd">Register a local virtual machine or container</description>
+ <message gettext-domain="systemd">Authentication is required to register a local virtual machine or container.</message>
+ <defaults>
+ <allow_any>auth_admin</allow_any>
+ <allow_inactive>auth_admin</allow_inactive>
+ <allow_active>yes</allow_active>
+ </defaults>
</action>
<action id="org.freedesktop.machine1.manage-images">