]> git.p6c8.net - jirafeau.git/blobdiff - admin.php
Fix input sanitize in scripting interface
[jirafeau.git] / admin.php
index bdd0267276b3a2ded6f8d7f13a6828fa75f9c6cb..bf61e6d5ee58e787244eb2d747ecfff3e345084e 100755 (executable)
--- a/admin.php
+++ b/admin.php
@@ -129,6 +129,18 @@ require (JIRAFEAU_ROOT . 'lib/template/header.php');
         </tr>
         </form>
         <form action = "<?php echo basename(__FILE__); ?>" method = "post">
         </tr>
         </form>
         <form action = "<?php echo basename(__FILE__); ?>" method = "post">
+        <tr>
+            <input type = "hidden" name = "action" value = "clean_async"/>
+            <td class = "info">
+                <?php echo t('Clean old unfinished transferts'); ?>
+            </td>
+            <td></td>
+            <td>
+                <input type = "submit" value = "<?php echo t('Clean'); ?>" />
+            </td>
+        </tr>
+        </form>
+        <form action = "<?php echo basename(__FILE__); ?>" method = "post">
         <tr>
             <input type = "hidden" name = "action" value = "list"/>
             <td class = "info">
         <tr>
             <input type = "hidden" name = "action" value = "list"/>
             <td class = "info">
@@ -201,6 +213,14 @@ if (isset ($_POST['action']))
         echo t('Number of cleaned files') . ' : ' . $total;
         echo '</p></div>';
     }
         echo t('Number of cleaned files') . ' : ' . $total;
         echo '</p></div>';
     }
+    elseif (strcmp ($_POST['action'], 'clean_async') == 0)
+    {
+        $total = jirafeau_admin_clean_async ();
+        echo '<div class="message">' . NL;
+        echo '<p>';
+        echo t('Number of cleaned files') . ' : ' . $total;
+        echo '</p></div>';
+    }
     elseif (strcmp ($_POST['action'], 'list') == 0)
     {
         jirafeau_admin_list ("", "", "");
     elseif (strcmp ($_POST['action'], 'list') == 0)
     {
         jirafeau_admin_list ("", "", "");
@@ -229,6 +249,19 @@ if (isset ($_POST['action']))
         echo '<div class="message">' . NL;
         echo '<p>' . t('Deleted links') . ' : ' . $count . '</p></div>';
     }
         echo '<div class="message">' . NL;
         echo '<p>' . t('Deleted links') . ' : ' . $count . '</p></div>';
     }
+    elseif (strcmp ($_POST['action'], 'download') == 0)
+    {
+        $l = jirafeau_get_link ($_POST['link']);
+        if (!count ($l))
+            return;
+        $p = s2p ($l['md5']);
+        header ('Content-Length: ' . $l['file_size']);
+        header ('Content-Type: ' . $l['mime_type']);
+        header ('Content-Disposition: attachment; filename="' .
+                $l['file_name'] . '"');
+        if (file_exists(VAR_FILES . $p . $l['md5']))
+            readfile (VAR_FILES . $p . $l['md5']);
+    }
 }
 
 require (JIRAFEAU_ROOT.'lib/template/footer.php');
 }
 
 require (JIRAFEAU_ROOT.'lib/template/footer.php');

patrick-canterino.de