]> git.p6c8.net - jirafeau.git/blobdiff - lib/functions.php
Add new `admin_ip` configuration option
[jirafeau.git] / lib / functions.php
index d6f7cb03cf19c0056100d163a101a2d323bc5392..064d3a1e06dc922edfc27c487f784c42ce6b8e03 100644 (file)
@@ -1385,6 +1385,31 @@ function jirafeau_challenge_upload($cfg, $ip, $password)
             (jirafeau_challenge_upload_password($cfg, $password) && jirafeau_challenge_upload_ip($cfg, $ip));
 }
 
+/**
+ * Check if Jirafeau has a restriction on the IP address for accessing the admin interface.
+ * @return true if admin interface is IP restricted, false otherwise.
+ */
+function jirafeau_admin_has_ip_restriction($cfg)
+{
+    return count($cfg['admin_ip']) > 0;
+}
+
+/**
+ * Test if visitor's IP is authorized to access the admin interface.
+ *
+ * @param $cfg configuration
+ * @param $challengedIp IP to be challenged
+ * @return true if IP is authorized, false otherwise.
+ */
+function jirafeau_challenge_admin_ip($cfg, $challengedIp)
+{
+    // If no IP address have been listed, allow upload from any IP
+    if (!jirafeau_admin_has_ip_restriction($cfg)) {
+        return true;
+    }
+    return jirafeau_challenge_ip($cfg['admin_ip'], $challengedIp);
+}
+
 /** Tell if we have some HTTP headers generated by a proxy */
 function has_http_forwarded()
 {

patrick-canterino.de