From f58031f40640cc7c243a32d2c3515210ef4ed282 Mon Sep 17 00:00:00 2001 From: Jerome Jutteau Date: Wed, 11 Mar 2015 22:16:07 +0100 Subject: [PATCH] Fixes #15 admins can now choose an availability duration - Add 'year' in list of possible durations - By default, 'year' and 'none' durations are disabled --- index.php | 17 ++++++++++++++++- lib/config.original.php | 17 +++++++++++++++++ lib/functions.js | 4 ++++ lib/lang/fr.php | 3 ++- lib/settings.php | 1 + script.php | 30 +++++++++++++++++++++--------- 6 files changed, 61 insertions(+), 11 deletions(-) diff --git a/index.php b/index.php index dd1a8bc..8c2898a 100644 --- a/index.php +++ b/index.php @@ -167,12 +167,27 @@ if (jirafeau_has_upload_password ($cfg))

diff --git a/lib/config.original.php b/lib/config.original.php index 7323814..fa0f034 100644 --- a/lib/config.original.php +++ b/lib/config.original.php @@ -63,6 +63,23 @@ $cfg['admin_password'] = ''; * If admin_password parameter is also set, admin_password is ignored. */ $cfg['admin_http_auth_user'] = ''; +/* Select different options for availability of uploaded files. + * Possible values in array: + * 'minute': file is available for one minute + * 'hour': file available for one hour + * 'day': file available for one day + * 'week': file available for one week + * 'month': file is available for one month + * 'year': file available for one year + * 'none': unlimited availability + */ +$cfg['availabilities'] = array ('minute' => true, + 'hour' => true, + 'day' => true, + 'week' => true, + 'month' => true, + 'year' => false, + 'none' => false); /* Installation is done ? */ $cfg['installation_done'] = false; diff --git a/lib/functions.js b/lib/functions.js index ccd13d3..e380015 100644 --- a/lib/functions.js +++ b/lib/functions.js @@ -158,6 +158,8 @@ function classic_upload (url, file, time, password, one_time, upload_password) d.setSeconds (d.getSeconds() + 604800); else if (time == 'month') d.setSeconds (d.getSeconds() + 2419200); + else if (time == 'year') + d.setSeconds (d.getSeconds() + 29030400); else return; show_link (url, res[0], res[1], res[2], d.toString()); @@ -316,6 +318,8 @@ function async_upload_end (code) d.setSeconds (d.getSeconds() + 604800); else if (async_global_time == 'month') d.setSeconds (d.getSeconds() + 2419200); + else if (async_global_time == 'year') + d.setSeconds (d.getSeconds() + 29030400); else return; show_link (async_global_url, res[0], res[1], res[2], d.toString()); diff --git a/lib/lang/fr.php b/lib/lang/fr.php index 4efcccb..6b1472b 100644 --- a/lib/lang/fr.php +++ b/lib/lang/fr.php @@ -31,12 +31,13 @@ $tr = array ( 'Maximum file size' => 'Taille maximale', 'powered by Open-Source project Jirafeau' => 'Propulsé par le projet Open-Source Jirafeau', 'Jirafeau Project' => 'Projet Jirafeau', - 'None' => 'Aucune', 'One minute' => 'Une minute', 'One hour' => 'Une heure', 'One day' => 'Une journée', 'One week' => 'Une semaine', 'One month' => 'Un mois', + 'One year' => 'Une année', + 'None' => 'Aucune', 'Upload password' => 'Mot de passe', 'The file directory is not writable' => 'Le dossier \'file\' ne peut être écrit.', 'The link directory is not writable' => 'Le dossier \'link\' ne peut être écrit.', diff --git a/lib/settings.php b/lib/settings.php index 74bf771..46f7c51 100644 --- a/lib/settings.php +++ b/lib/settings.php @@ -35,5 +35,6 @@ define ('JIRAFEAU_HOUR', 3600); // JIRAFEAU_MINUTE * 60 define ('JIRAFEAU_DAY', 86400); // JIRAFEAU_HOUR * 24 define ('JIRAFEAU_WEEK', 604800); // JIRAFEAU_DAY * 7 define ('JIRAFEAU_MONTH', 2419200); // JIRAFEAU_WEEK * 4 +define ('JIRAFEAU_MONTH', 29030400); // JIRAFEAU_MONTH * 12 ?> diff --git a/script.php b/script.php index 7f80209..a3568ee 100644 --- a/script.php +++ b/script.php @@ -89,7 +89,7 @@ if ($_SERVER['REQUEST_METHOD'] == "GET" && count ($_GET) == 0) echo '
'; echo t('Parameters') . ':
'; echo "file=C:\\your\\file\\path (" . t('Required') . ")
"; - echo "time=[minute|hour|day|week|month|none] (" . t('Optional') . ', '. t('default: none') . ")
"; + echo "time=[minute|hour|day|week|month|year|none] (" . t('Optional') . ', '. t('default: none') . ")
"; echo "password=your_password (" . t('Optional') . ")
"; echo "one_time_download=1 (" . t('Optional') . ")
"; echo "upload_password=your_upload_password (" . t('Optional') . ")
"; @@ -155,7 +155,7 @@ if ($_SERVER['REQUEST_METHOD'] == "GET" && count ($_GET) == 0) echo t('Parameters') . ':
'; echo "filename=file_name.ext (" . t('Required') . ")
"; echo "type=MIME_TYPE (" . t('Optional') . ")
"; - echo "time=[minute|hour|day|week|month|none] (" . t('Optional') . ', '. t('default: none') . ")
"; + echo "time=[minute|hour|day|week|month|year|none] (" . t('Optional') . ', '. t('default: none') . ")
"; echo "password=your_password (" . t('Optional') . ")
"; echo "one_time_download=1 (" . t('Optional') . ")
"; echo "upload_password=your_upload_password (" . t('Optional') . ")
"; @@ -218,8 +218,11 @@ if (isset ($_FILES['file']) && is_writable (VAR_FILES) $key = $_POST['key']; $time = time (); - if (!isset ($_POST['time'])) - $time = JIRAFEAU_INFINITY; + if (!isset ($_POST['time']) || !$cfg['availabilities'][$_POST['time']]) + { + echo "Error"; + exit; + } else switch ($_POST['time']) { @@ -238,7 +241,10 @@ if (isset ($_FILES['file']) && is_writable (VAR_FILES) case 'month': $time += JIRAFEAU_MONTH; break; - default: + case 'year': + $time += JIRAFEAU_YEAR; + break; + default: $time = JIRAFEAU_INFINITY; break; } @@ -348,7 +354,7 @@ elseif (isset ($_GET['lang'])) # Config proxy='' # ex: proxy='proxysever.test.com:3128' or set JIRAFEAU_PROXY global variable url='' # or set JIRAFEAU_URL ex: url='http://mysite/jirafeau/script.php' -time='none' # minute, hour, day, week, month or none. Or set JIRAFEAU_TIME. +time='none' # minute, hour, day, week, month, year or none. Or set JIRAFEAU_TIME. one_time='' # ex: one_time="1" or set JIRAFEAU_ONE_TIME. curl='' # curl path to download or set JIRAFEAU_CURL_PATH. # End of config @@ -399,7 +405,7 @@ if [ -z "$2" ]; then echo "Global variables to export:" echo " JIRAFEAU_PROXY : example: proxysever.test.com:3128" echo " JIRAFEAU_URL : example: http://mysite/jirafeau/script.php" - echo " JIRAFEAU_TIME : minute, hour, day, week, month or none" + echo " JIRAFEAU_TIME : minute, hour, day, week, year, month or none" echo " JIRAFEAU_ONE_TIME : set anything or set empty" echo " JIRAFEAU_CURL : path to your curl binary" @@ -496,8 +502,11 @@ elseif (isset ($_GET['init_async'])) $key = $_POST['key']; $time = time (); - if (!isset ($_POST['time'])) - $time = JIRAFEAU_INFINITY; + if (!isset ($_POST['time']) || !$cfg['availabilities'][$_POST['time']]) + { + echo "Error"; + exit; + } else switch ($_POST['time']) { @@ -516,6 +525,9 @@ elseif (isset ($_GET['init_async'])) case 'month': $time += JIRAFEAU_MONTH; break; + case 'year': + $time += JIRAFEAU_YEAR; + break; default: $time = JIRAFEAU_INFINITY; break; -- 2.34.1