]> git.p6c8.net - jirafeau.git/commitdiff
Add option to set an upload password
authorJerome Jutteau <mojo@couak.net>
Thu, 1 Aug 2013 19:30:11 +0000 (19:30 +0000)
committerJerome Jutteau <mojo@couak.net>
Thu, 1 Aug 2013 19:30:11 +0000 (19:30 +0000)
index.php
lib/config.original.php
lib/functions.js
script.php

index 9b2e4f66b1df62514cf3edbb9cb2a2e38d2bc069..d2671409e356c6aeb90abde281b1b9416ccb47cc 100755 (executable)
--- a/index.php
+++ b/index.php
@@ -33,6 +33,62 @@ if (has_error ())
     require (JIRAFEAU_ROOT . 'lib/template/footer.php');
     exit;
 }
     require (JIRAFEAU_ROOT . 'lib/template/footer.php');
     exit;
 }
+
+/* Ask password if upload password is set. */
+if (strlen ($cfg['upload_password']) > 0)
+{
+    session_start();
+
+    /* Unlog if asked. */
+    if (isset ($_POST['action']) && (strcmp ($_POST['action'], 'logout') == 0))
+        $_SESSION['upload_auth'] = false;
+
+    /* Auth. */
+    if (isset ($_POST['upload_password']))
+    {
+        if (strcmp ($cfg['upload_password'], $_POST['upload_password']) == 0)
+            $_SESSION['upload_auth'] = true;
+        else
+        {
+            $_SESSION['admin_auth'] = false;
+            echo '<div class="error"><p>' . t('Wrong password.') . '</p></div>';
+            require (JIRAFEAU_ROOT.'lib/template/footer.php');
+            exit;
+        }
+    }
+
+    /* Show auth page. */
+    if (!isset ($_SESSION['upload_auth']) || $_SESSION['upload_auth'] != true)
+    {
+       ?>
+        <form action = "<?php echo basename(__FILE__); ?>" method = "post">
+        <fieldset>
+            <table>
+            <tr>
+                <td class = "label"><label for = "enter_password">
+                <?php echo t('Upload password') . ':';?></label>
+                </td>
+                <td class = "field"><input type = "password"
+                name = "upload_password" id = "upload_password"
+                size = "40" />
+                </td>
+            </tr>
+            <tr class = "nav">
+                <td></td>
+                <td class = "nav next">
+                <input type = "submit" name = "key" value =
+                "<?php echo t('Login'); ?>" />
+                </td>
+            </tr>
+            </table>
+        </fieldset>
+        </form>
+        <?php
+        require (JIRAFEAU_ROOT.'lib/template/footer.php');
+        exit;
+    }
+}
+
 ?>
 <div id="upload_finished">
     <p>
 ?>
 <div id="upload_finished">
     <p>
@@ -96,6 +152,8 @@ if (has_error ())
         </tr>
                <p id="max_file_size" class="config"></p>
     <p>
         </tr>
                <p id="max_file_size" class="config"></p>
     <p>
+
+    <input type="hidden" id="upload_password" name="upload_password" value="<?php echo $cfg['upload_password']?>"/>
     <input type="submit" id="send" value="<?php echo t('Send'); ?>"
     onclick="
         document.getElementById('upload').style.display = 'none';
     <input type="submit" id="send" value="<?php echo t('Send'); ?>"
     onclick="
         document.getElementById('upload').style.display = 'none';
@@ -105,6 +163,19 @@ if (has_error ())
     </p>
         </table>
     </div> </fieldset>
     </p>
         </table>
     </div> </fieldset>
+
+    <?php
+    if (strlen ($cfg['upload_password']) > 0)
+    {
+    ?>
+    <form action = "<?php echo basename(__FILE__); ?>" method = "post">
+        <input type = "hidden" name = "action" value = "logout"/>
+        <input type = "submit" value = "<?php echo t('Logout'); ?>" />
+    </form>
+    <?php
+    }
+    ?>
+
 </div>
 
 <script lang="Javascript">
 </div>
 
 <script lang="Javascript">
index a8672680b9fc30057b67e15f209fa66ba5485cc1..17de2bbfb8932ef8dbb8c1e275a1fdb54d0bbac1 100644 (file)
@@ -52,6 +52,8 @@ $cfg['enable_blocks'] = false;
 $cfg['enable_crypt'] = false;
 /* Split lenght of link refenrece. */
 $cfg['link_name_lenght'] = 8;
 $cfg['enable_crypt'] = false;
 /* Split lenght of link refenrece. */
 $cfg['link_name_lenght'] = 8;
+/* Upload password. Empty string disable the password. */
+$cfg['upload_password'] = '';
 
 if ((basename (__FILE__) != 'config.local.php')
     && file_exists (JIRAFEAU_ROOT.'lib/config.local.php'))
 
 if ((basename (__FILE__) != 'config.local.php')
     && file_exists (JIRAFEAU_ROOT.'lib/config.local.php'))
index 24c7df36f876e29deb920665655232ba1ded7aad..8922e0e820ff99bb2192c6b65349e27296be518c 100755 (executable)
@@ -73,7 +73,7 @@ function upload_failed (e)
     alert ('Sorry, upload failed');
 }
 
     alert ('Sorry, upload failed');
 }
 
-function classic_upload (url, file, time, password, one_time)
+function classic_upload (url, file, time, password, one_time, upload_password)
 {
     var req = new XMLHttpRequest ();
     req.upload.addEventListener ("progress", upload_progress, false);
 {
     var req = new XMLHttpRequest ();
     req.upload.addEventListener ("progress", upload_progress, false);
@@ -118,6 +118,9 @@ function classic_upload (url, file, time, password, one_time)
         form.append ("key", password);
     if (one_time)
         form.append ("one_time_download", '1');
         form.append ("key", password);
     if (one_time)
         form.append ("one_time_download", '1');
+    if (upload_password.length > 0)
+        form.append ("upload_password", upload_password);
+
     req.send (form);
 }
 
     req.send (form);
 }
 
@@ -136,7 +139,7 @@ var async_global_max_size = 0;
 var async_global_time;
 var async_global_transfering = 0;
 
 var async_global_time;
 var async_global_transfering = 0;
 
-function async_upload_start (url, max_size, file, time, password, one_time)
+function async_upload_start (url, max_size, file, time, password, one_time, upload_password)
 {
     async_global_transfered = 0;
     async_global_url = url;
 {
     async_global_transfered = 0;
     async_global_url = url;
@@ -171,6 +174,9 @@ function async_upload_start (url, max_size, file, time, password, one_time)
         form.append ("key", password);
     if (one_time)
         form.append ("one_time_download", '1');
         form.append ("key", password);
     if (one_time)
         form.append ("one_time_download", '1');
+    if (upload_password.length > 0)
+        form.append ("upload_password", upload_password);
+
     req.send (form);
 }
 
     req.send (form);
 }
 
@@ -278,7 +284,8 @@ function upload (url, max_size)
             document.getElementById('file_select').files[0],
             document.getElementById('select_time').value,
             document.getElementById('input_key').value,
             document.getElementById('file_select').files[0],
             document.getElementById('select_time').value,
             document.getElementById('input_key').value,
-            document.getElementById('one_time_download').checked
+            document.getElementById('one_time_download').checked,
+            document.getElementById('upload_password').value
             );
     }
     else
             );
     }
     else
@@ -287,7 +294,8 @@ function upload (url, max_size)
             document.getElementById('file_select').files[0],
             document.getElementById('select_time').value,
             document.getElementById('input_key').value,
             document.getElementById('file_select').files[0],
             document.getElementById('select_time').value,
             document.getElementById('input_key').value,
-            document.getElementById('one_time_download').checked
+            document.getElementById('one_time_download').checked,
+            document.getElementById('upload_password').value
             );
     }
 }
             );
     }
 }
index b6fa71f273e3eb0c4b9936a7553d00111c887a50..19f14a8e05442cbeff2a744fe38917525c8e3b76 100755 (executable)
@@ -263,6 +263,12 @@ if (has_error ())
 if (isset ($_FILES['file']) && is_writable (VAR_FILES)\r
     && is_writable (VAR_LINKS))\r
 {\r
 if (isset ($_FILES['file']) && is_writable (VAR_FILES)\r
     && is_writable (VAR_LINKS))\r
 {\r
+    if (strlen ($cfg['upload_password']) > 0 && (!isset ($_POST['upload_password']) || $_POST['upload_password'] != $cfg['upload_password']))\r
+    {\r
+        echo "Error";\r
+        exit;\r
+    }\r
+\r
     $key = '';\r
     if (isset ($_POST['key']))\r
         $key = $_POST['key'];\r
     $key = '';\r
     if (isset ($_POST['key']))\r
         $key = $_POST['key'];\r
@@ -523,6 +529,12 @@ fi
 /* Initialize an asynchronous upload. */\r
 elseif (isset ($_GET['init_async']))\r
 {\r
 /* Initialize an asynchronous upload. */\r
 elseif (isset ($_GET['init_async']))\r
 {\r
+    if (strlen ($cfg['upload_password']) > 0 && (!isset ($_POST['upload_password']) || $_POST['upload_password'] != $cfg['upload_password']))\r
+    {\r
+        echo "Error";\r
+        exit;\r
+    }\r
+\r
     if (!isset ($_POST['filename']))\r
     {\r
         echo "Error";\r
     if (!isset ($_POST['filename']))\r
     {\r
         echo "Error";\r
@@ -591,6 +603,12 @@ elseif (isset ($_GET['end_async']))
 /* Initialize block. */\r
 elseif (isset ($_GET['init_block']) && $cfg['enable_blocks'])\r
 {\r
 /* Initialize block. */\r
 elseif (isset ($_GET['init_block']) && $cfg['enable_blocks'])\r
 {\r
+    if (strlen ($cfg['upload_password']) > 0 && (!isset ($_POST['upload_password']) || $_POST['upload_password'] != $cfg['upload_password']))\r
+    {\r
+        echo "Error";\r
+        exit;\r
+    }\r
+\r
     if (!isset ($_POST['size']))\r
         echo "Error";\r
     else\r
     if (!isset ($_POST['size']))\r
         echo "Error";\r
     else\r

patrick-canterino.de