]> git.p6c8.net - jirafeau.git/blobdiff - lib/functions.php
Closes #6 can use several upload passwords in options
[jirafeau.git] / lib / functions.php
old mode 100755 (executable)
new mode 100644 (file)
index 1ad0e52..1e5b083
@@ -90,6 +90,18 @@ jirafeau_gen_random ($l)
     return $code;
 }
 
+function is_ssl() {
+    if ( isset($_SERVER['HTTPS']) ) {
+        if ( 'on' == strtolower($_SERVER['HTTPS']) )
+            return true;
+        if ( '1' == $_SERVER['HTTPS'] )
+            return true;
+    } elseif ( isset($_SERVER['SERVER_PORT']) && ( '443' == $_SERVER['SERVER_PORT'] ) ) {
+        return true;
+    }
+    return false;
+}
+
 function
 jirafeau_human_size ($octets)
 {
@@ -389,7 +401,7 @@ jirafeau_upload ($file, $one_time_download, $key, $time, $ip, $crypt, $link_name
         $password = md5 ($key);
 
     /* create link file */
-    $link_tmp_name =  VAR_LINKS . $md5 . rand (0, 10000) . ' .tmp';
+    $link_tmp_name =  VAR_LINKS . $md5 . rand (0, 10000) . '.tmp';
     $handle = fopen ($link_tmp_name, 'w');
     fwrite ($handle,
             $name . NL. $mime_type . NL. $size . NL. $password . NL. $time .
@@ -491,10 +503,10 @@ show_errors ()
     }
 }
 
-function check_errors ()
+function check_errors ($cfg)
 {
     if (file_exists (JIRAFEAU_ROOT . 'install.php')
-        && !file_exists (JIRAFEAU_ROOT . 'lib/config.local.php'))
+        && !($cfg['installation_done'] === true))
     {
         header('Location: install.php'); 
         exit;
@@ -515,12 +527,6 @@ function check_errors ()
 
      if (!is_writable (VAR_BLOCK))
         add_error (t('The block directory is not writable!'), VAR_BLOCK);
-
-   /* Check if the install.php script is still in the directory. */
-    if (file_exists (JIRAFEAU_ROOT . 'install.php'))
-        add_error (t('Installer script still present'),
-             t('Please make sure to delete the installer script ' .
-               '"install.php" before continuing.'));
 }
 
 /**
@@ -549,6 +555,8 @@ jirafeau_get_link ($hash)
     $out['link_code'] = trim ($c[9]);
     if (trim ($c[10]) == 'C')
            $out['crypted'] = true;
+    else
+           $out['crypted'] = false;
     
     return $out;
 }
@@ -905,7 +913,7 @@ jirafeau_async_end ($ref, $code, $crypt, $link_name_length)
     $crypt_key = '';
     if ($crypt == true && extension_loaded('mcrypt'))
     {
-        $cypt_key = jirafeau_encrypt_file ($p, $p);
+        $crypt_key = jirafeau_encrypt_file ($p, $p);
         if (strlen($crypt_key) > 0)
             $crypted = true;
     }
@@ -934,7 +942,7 @@ jirafeau_async_end ($ref, $code, $crypt, $link_name_length)
     fclose ($handle);
     
     /* Create link. */
-    $link_tmp_name =  VAR_LINKS . $md5 . rand (0, 10000) . ' .tmp';
+    $link_tmp_name =  VAR_LINKS . $md5 . rand (0, 10000) . '.tmp';
     $handle = fopen ($link_tmp_name, 'w');
     fwrite ($handle,
             $a['file_name'] . NL . $a['mime_type'] . NL . $size . NL .
@@ -1377,4 +1385,28 @@ jirafeau_decrypt_file ($fp_src, $fp_dst, $k)
     return true;
 }
 
-?>
+/**
+ * Check if Jirafeau is password protected for visitors.
+ * @return true if Jirafeau is password protected, false otherwise.
+ */
+function jirafeau_has_upload_password ($cfg)
+{
+    return count ($cfg['upload_password']) > 0;
+}
+
+/**
+ * Challenge password for a visitor.
+ * @param $password password to be challenged
+ * @return true if password is valid, false otherwise.
+ */
+function jirafeau_challenge_upload_password ($cfg, $password)
+{
+    if (!jirafeau_has_upload_password($cfg))
+        return false;
+    forEach ($cfg['upload_password'] as $p)
+        if ($password == $p)
+            return true;
+    error_log("password not found $password");
+    return false;
+}
+

patrick-canterino.de