Added udisks2-20131026-removable-devices-polkit-auth.patch. It adds polkit authorization variables for removable media, which allow restricting or granting access to removable media based on its type using polkit authorization rules (fate#312966 fdo#72122). OBS-URL: https://build.opensuse.org/request/show/210135 OBS-URL: https://build.opensuse.org/package/show/Base:System/udisks2?expand=0&rev=36
76 lines
5.9 KiB
Diff
76 lines
5.9 KiB
Diff
Index: udisks-2.1.1/doc/html/udisks-polkit-actions.html
|
|
===================================================================
|
|
--- udisks-2.1.1.orig/doc/html/udisks-polkit-actions.html 2013-08-21 03:49:57.000000000 +0200
|
|
+++ udisks-2.1.1/doc/html/udisks-polkit-actions.html 2013-10-04 12:10:53.160542373 +0200
|
|
@@ -120,6 +120,14 @@
|
|
<td align="left">If the object is a drive (or a block device that is part of a drive), this is set to the string <span class="quote">“<span class="quote">true</span>”</span> only if the value of the <a class="link" href="gdbus-org.freedesktop.UDisks2.Drive.html#gdbus-property-org-freedesktop-UDisks2-Drive.Removable" title='The "Removable" property'>Drive:Removable</a> property is <code class="constant">TRUE</code>.</td>
|
|
</tr>
|
|
<tr>
|
|
+<td align="left"><em class="parameter"><code>drive.removable.bus</code></em></td>
|
|
+<td align="left">If the object is a drive (or a block device that is part of a drive), this is set to the value of the <a class="link" href="gdbus-org.freedesktop.UDisks2.Drive.html#gdbus-property-org-freedesktop-UDisks2-Drive.ConnectionBus" title='The "ConnectionBus" property'>Drive:ConnectionBus</a> property. This variable is set only if the value of the <a class="link" href="gdbus-org.freedesktop.UDisks2.Drive.html#gdbus-property-org-freedesktop-UDisks2-Drive.Removable" title='The "Removable" property'>Drive:Removable</a> property is <code class="constant">TRUE</code>.</td>
|
|
+</tr>
|
|
+<tr>
|
|
+<td align="left"><em class="parameter"><code>drive.removable.media</code></em></td>
|
|
+<td align="left">If the object is a drive (or a block device that is part of a drive), this is set to the value of the <a class="link" href="gdbus-org.freedesktop.UDisks2.Drive.html#gdbus-property-org-freedesktop-UDisks2-Drive.MediaCompatibility" title='The "MediaCompatibility" property'>Drive:MediaCompatibility</a> property. This variable is set only if the value of the <a class="link" href="gdbus-org.freedesktop.UDisks2.Drive.html#gdbus-property-org-freedesktop-UDisks2-Drive.Removable" title='The "Removable" property'>Drive:Removable</a> property is <code class="constant">TRUE</code>.</td>
|
|
+</tr>
|
|
+<tr>
|
|
<td align="left"><em class="parameter"><code>id.type</code></em></td>
|
|
<td align="left">If the object is a block device, this property is set to the value of the <a class="link" href="gdbus-org.freedesktop.UDisks2.Block.html#gdbus-property-org-freedesktop-UDisks2-Block.IdType" title='The "IdType" property'>Block:IdType</a> property.</td>
|
|
</tr>
|
|
Index: udisks-2.1.1/doc/udisks2-docs.xml
|
|
===================================================================
|
|
--- udisks-2.1.1.orig/doc/udisks2-docs.xml 2013-07-23 08:51:10.000000000 +0200
|
|
+++ udisks-2.1.1/doc/udisks2-docs.xml 2013-10-04 12:01:27.720575739 +0200
|
|
@@ -248,6 +248,14 @@
|
|
<entry><parameter>drive.removable</parameter></entry>
|
|
<entry>If the object is a drive (or a block device that is part of a drive), this is set to the string <quote>true</quote> only if the value of the <link linkend="gdbus-property-org-freedesktop-UDisks2-Drive.Removable">Drive:Removable</link> property is <constant>TRUE</constant>.</entry>
|
|
</row>
|
|
+ <row>
|
|
+ <entry><parameter>drive.removable.bus</parameter></entry>
|
|
+ <entry>If the object is a drive (or a block device that is part of a drive), this is set to the value of the <link linkend="gdbus-property-org-freedesktop-UDisks2-Drive.ConnectionBus">Drive:ConnectionBus</link> property. This variable is set only if the value of the <link linkend="gdbus-property-org-freedesktop-UDisks2-Drive.Removable">Drive:Removable</link> property is <constant>TRUE</constant>.</entry>
|
|
+ </row>
|
|
+ <row>
|
|
+ <entry><parameter>drive.removable.media</parameter></entry>
|
|
+ <entry>If the object is a drive (or a block device that is part of a drive), this is set to the value of the <link linkend="gdbus-property-org-freedesktop-UDisks2-Drive.MediaCompatibility">Drive:MediaCompatibility</link> property. This variable is set only if the value of the <link linkend="gdbus-property-org-freedesktop-UDisks2-Drive.Removable">Drive:Removable</link> property is <constant>TRUE</constant>.</entry>
|
|
+ </row>
|
|
|
|
<row>
|
|
<entry><parameter>id.type</parameter></entry>
|
|
Index: udisks-2.1.1/src/udisksdaemonutil.c
|
|
===================================================================
|
|
--- udisks-2.1.1.orig/src/udisksdaemonutil.c 2013-07-23 08:51:10.000000000 +0200
|
|
+++ udisks-2.1.1/src/udisksdaemonutil.c 2013-10-04 11:37:33.176660391 +0200
|
|
@@ -637,7 +637,31 @@ udisks_daemon_util_check_authorization_s
|
|
_safe_polkit_details_insert (details, "drive.model", udisks_drive_get_model (drive));
|
|
_safe_polkit_details_insert (details, "drive.revision", udisks_drive_get_revision (drive));
|
|
if (udisks_drive_get_removable (drive))
|
|
- polkit_details_insert (details, "drive.removable", "true");
|
|
+ {
|
|
+ const gchar *const *media_compat;
|
|
+ GString *media_compat_str;
|
|
+ const gchar *sep = ",";
|
|
+
|
|
+ polkit_details_insert (details, "drive.removable", "true");
|
|
+ _safe_polkit_details_insert (details, "drive.removable.bus", udisks_drive_get_connection_bus (drive));
|
|
+
|
|
+ media_compat_str = g_string_new (NULL);
|
|
+ media_compat = udisks_drive_get_media_compatibility (drive);
|
|
+ if (media_compat)
|
|
+ {
|
|
+ guint i;
|
|
+
|
|
+ for (i = 0; media_compat[i] && strlen(media_compat[i]); i++)
|
|
+ {
|
|
+ if (i)
|
|
+ g_string_append (media_compat_str, sep);
|
|
+ g_string_append (media_compat_str, media_compat[i]);
|
|
+ }
|
|
+ }
|
|
+
|
|
+ _safe_polkit_details_insert (details, "drive.removable.media", media_compat_str->str);
|
|
+ g_string_free (media_compat_str, TRUE);
|
|
+ }
|
|
}
|
|
|
|
if (block != NULL)
|