diff options
-rw-r--r-- | data/org.freedesktop.udisks2.policy.in | 37 | ||||
-rw-r--r-- | src/udiskslinuxdrive.c | 7 |
2 files changed, 39 insertions, 5 deletions
diff --git a/data/org.freedesktop.udisks2.policy.in b/data/org.freedesktop.udisks2.policy.in index c41e2ec..5ad2bbb 100644 --- a/data/org.freedesktop.udisks2.policy.in +++ b/data/org.freedesktop.udisks2.policy.in @@ -205,7 +205,42 @@ </action> <!-- ###################################################################### --> - <!-- Modify a device (create new filesystem, partitioning, change FS label, ejecting media, etc.) --> + <!-- Eject media from a drive --> + + <action id="org.freedesktop.udisks2.eject-media"> + <_description>Eject media</_description> + <_message>Authentication is required to eject media</_message> + <defaults> + <allow_any>auth_admin</allow_any> + <allow_inactive>auth_admin</allow_inactive> + <allow_active>yes</allow_active> + </defaults> + </action> + + <!-- eject media from a drive considered a "system device" --> + <action id="org.freedesktop.udisks2.eject-media-system"> + <_description>Eject media from a system drive</_description> + <_message>Authentication is required to eject media</_message> + <defaults> + <allow_any>auth_admin</allow_any> + <allow_inactive>auth_admin</allow_inactive> + <allow_active>auth_admin_keep</allow_active> + </defaults> + </action> + + <!-- eject media from a drive attached to another seat --> + <action id="org.freedesktop.udisks2.eject-media-other-seat"> + <_description>Eject media attached to another seat</_description> + <_message>Authentication is required to eject media from a drive plugged into another seat</_message> + <defaults> + <allow_any>auth_admin</allow_any> + <allow_inactive>auth_admin</allow_inactive> + <allow_active>auth_admin_keep</allow_active> + </defaults> + </action> + + <!-- ###################################################################### --> + <!-- Modify a device (create new filesystem, partitioning, change FS label etc.) --> <action id="org.freedesktop.udisks2.modify-device"> <_description>Modify a device</_description> diff --git a/src/udiskslinuxdrive.c b/src/udiskslinuxdrive.c index a89fe32..98f705b 100644 --- a/src/udiskslinuxdrive.c +++ b/src/udiskslinuxdrive.c @@ -729,16 +729,15 @@ handle_eject (UDisksDrive *_drive, goto out; } - /* TODO: is it a good idea to overload modify-device? */ message = N_("Authentication is required to eject $(udisks2.device)"); - action_id = "org.freedesktop.udisks2.modify-device"; + action_id = "org.freedesktop.udisks2.eject-media"; if (udisks_block_get_hint_system (block)) { - action_id = "org.freedesktop.udisks2.modify-device-system"; + action_id = "org.freedesktop.udisks2.eject-media-system"; } else if (!udisks_daemon_util_on_same_seat (daemon, UDISKS_OBJECT (object), caller_pid)) { - action_id = "org.freedesktop.udisks2.modify-device-other-seat"; + action_id = "org.freedesktop.udisks2.eject-media-other-seat"; } /* Check that the user is actually authorized */ |