<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://git.reviewboard.kde.org/r/129983/">https://git.reviewboard.kde.org/r/129983/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On March 13th, 2017, 12:10 p.m. UTC, <b>Elvis Angelaccio</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I'm not sure if we should show the warning dialog at the kio_file level. This would result in a double dialog when deleting files with Shift+Del from file managers. What about making jobuidelegate.cpp smarter? It could show a more "scary" message if the file that's being deleted is write-protected.</p></pre>
</blockquote>
<p>On March 14th, 2017, 2:49 p.m. UTC, <b>Chinmoy Ranjan Pradhan</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">In my system when i use Shift+del there is no warning dialog (few months back dolphin used to show the dialog but strangly it doesn't shows now) so this case didn't occured to me. </p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">If I am not wrong jobuidelegate's warning is shown before the job executes and kauth's authentication dialog is shown only after job executes. But its just the opposite we want. So if there's a way for slave to notify the job of starting of a priviledged action then there should be no problem in making jobuidelegate smarter.
(But the thing is at this very moment i can't think of or find any possible way)</p></pre>
</blockquote>
<p>On March 14th, 2017, 10:07 p.m. UTC, <b>Elvis Angelaccio</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">You probably checked the "don't show again" checkbox ;) The jobuidelegate's dialog is shown by default, so we must assume the user will see it => we need a way to prevent showing the dialog twice. You are right that jobuidelegate is run before kio_file is involved. I was thinking of checking the permissions from jobuidelegate: can you check if QFileInfo would do the trick? (e.g. QFileInfo::isWritable()?)</p></pre>
</blockquote>
<p>On March 15th, 2017, 2:46 p.m. UTC, <b>Chinmoy Ranjan Pradhan</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><blockquote style="text-rendering: inherit;padding: 0 0 0 1em;border-left: 1px solid #bbb;white-space: normal;margin: 0 0 0 0.5em;line-height: inherit;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">You probably checked the "don't show again" checkbox ;)</p>
</blockquote>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Completely forgot about that :P</p>
<blockquote style="text-rendering: inherit;padding: 0 0 0 1em;border-left: 1px solid #bbb;white-space: normal;margin: 0 0 0 0.5em;line-height: inherit;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">we need a way to prevent showing the dialog twice</p>
</blockquote>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I hope you mean the warning dialog because if the user is not authorised then there will be two dialogs.</p>
<blockquote style="text-rendering: inherit;padding: 0 0 0 1em;border-left: 1px solid #bbb;white-space: normal;margin: 0 0 0 0.5em;line-height: inherit;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I was thinking of checking the permissions from jobuidelegate: can you check if QFileInfo would do the trick?</p>
</blockquote>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Checking permissions beforehand and then showing the dangerous warning is definitely a good idea. Now QFileInfo::isWritable will work only when deleteJob is started inside a write-protected location. Suppose if its a regular folder inside some regular location but containing a write-protected subfolder then the check's result will be useless.
One thing we can do is stat the contents and as soon we find a write-protected location we can abort the stat'ing and show our special warning.</p></pre>
</blockquote>
</blockquote>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Sounds good. Please make sure to include this point in your proposal ;)</p></pre>
<br />
<p>- Elvis</p>
<br />
<p>On March 14th, 2017, 2:48 p.m. UTC, Chinmoy Ranjan Pradhan wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
<div>Review request for KDE Frameworks, David Faure and Elvis Angelaccio.</div>
<div>By Chinmoy Ranjan Pradhan.</div>
<p style="color: grey;"><i>Updated March 14, 2017, 2:48 p.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
kio
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This is regarding the GSOC idea https://community.kde.org/GSoC/2017/Ideas#Project:_Polkit_support_in_KIO.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This patch intends to demonstrate one possible approach to provide polkit support in kio. Here its only for the delete operation. This is based on the patch in task https://phabricator.kde.org/T5070.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">The approach is as follows;
1. Whenever file ioslave gets access denied error it calls the method <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">execWithRoot</em> with the action that requires priviledge, the path of items
upon which action needs to be performed and a warning ID as arguments.
2. <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">execWithRoot</em> then executes the KAuth::Action <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">org.kde.kio.file.execute</em>.
3. This Kauth::Action has its Persistence set too 'session'. This means that after authentication the restrictions are dropped for a while, for <br style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;" />
about 5 minutes. This is similar to the behaviour of sudo command.
4. During this time we can perform any action as a privileged user without any authentication. So to prevent any mishap i added a warning box which
would popup before performing any action(only during this period).
5. After the said time interval the root privileges are droped and calling <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">execWithRoot</em> should show the usual authentication dialog.</p></pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>src/ioslaves/file/CMakeLists.txt <span style="color: grey">(b9132ce)</span></li>
<li>src/ioslaves/file/file.h <span style="color: grey">(109ea80)</span></li>
<li>src/ioslaves/file/file.cpp <span style="color: grey">(eaf6c88)</span></li>
<li>src/ioslaves/file/file_unix.cpp <span style="color: grey">(82eb11a)</span></li>
<li>src/ioslaves/file/kauth/CMakeLists.txt <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/ioslaves/file/kauth/file.actions <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/ioslaves/file/kauth/helper.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/ioslaves/file/kauth/helper.cpp <span style="color: grey">(PRE-CREATION)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/129983/diff/" style="margin-left: 3em;">View Diff</a></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">File Attachments </h1>
<li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2017/03/09/d42570e8-aedf-4c02-801e-362a68755c2c__polkit_integration.png">warning dialog</a></li>
</ul>
</td>
</tr>
</table>
</div>
</body>
</html>