<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 />




<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>










<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;
The file ioslave gets three methods, /<em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">getRootPermission, execWithRoot and unsetRoot</em>/ with a variable /<em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">isRoot</em>/ to store the persistance. The helper gets two actions, /<em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">org.kde.kio.file.requestroot</em>/ and /<em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">org.kde.kio.file.execute</em>/. 
When an action encounters access denied error the method "execWithRoot" is called with the action you want to perform and the path of objects upon which you want to perform the action as arguments. This method then calls "getRootPermission" for authorisation purpose. Upon successfull authorisation this will then go on performing the desired action as privileged user. Once the job is finished "unsetRoot" is called.
For authorisation a call to "org.kde.kio.file.requestroot" will be made. This action has its "Policy" set to "auth_admin" so as to prompt for password every time its called. And the action "org.kde.kio.file.execute" has its "Policy" set to "yes" so that it can carry out the desired action as a priviledged user without asking for authentication. </p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">As for the deletion of files and directories are concerned, the authentication dialog will pop up only once i.e, for the first file/directory that needs requires a priviledged user to delete them. If there are more files which only priviledge users can delete then they will be deleted straightaway without asking for authentication. This is decided by the truth of variable "isRoot". Once the delete job is finished "isRoot" is set to false. In short once the job has started and authentication's been done, the root access will persist and once the job is finished the root access will reset.</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>






  </td>
 </tr>
</table>



  </div>
 </body>
</html>