]> git.p6c8.net - jirafeau_project.git/blobdiff - admin.php
Define some Sodium constants from newer PHP versions if they are not available
[jirafeau_project.git] / admin.php
index 180b4f77d790f174b1c69f171c1522afa86ea6a3..0f8967f90736d5193841e4ba664a99dbad699b43 100644 (file)
--- a/admin.php
+++ b/admin.php
@@ -44,7 +44,8 @@ if (php_sapi_name() == "cli") {
     } else {
         die("No command found. Should be admin.php <clean_expired|clean_async>.\n");
     }
-} else {
+// Second check: Challenge by IP
+} elseif (true === jirafeau_challenge_admin_ip($cfg, get_ip_address($cfg))) {
     /* Disable admin interface if we have a empty admin password. */
     if (empty($cfg['admin_password']) && empty($cfg['admin_http_auth_user'])) {
         require(JIRAFEAU_ROOT . 'lib/template/header.php');
@@ -55,18 +56,18 @@ if (php_sapi_name() == "cli") {
         exit;
     }
 
-    /* Unlog if asked. */
+    /* Logout if requested. */
     if (jirafeau_admin_session_logged() && isset($_POST['action']) && (strcmp($_POST['action'], 'logout') == 0)) {
-        jirafeau_admin_session_end();
+        jirafeau_session_end();
     }
 
     if (!jirafeau_admin_session_logged()) {
-        /* Test HTTP authentification. */
+        /* Test HTTP authentication. */
         if (!empty($cfg['admin_http_auth_user']) &&
           $cfg['admin_http_auth_user'] == $_SERVER['PHP_AUTH_USER']) {
             jirafeau_admin_session_start();
         }
-        /* Test web password authentification. */
+        /* Test web password authentication. */
         elseif (!empty($cfg['admin_password']) && isset($_POST['admin_password'])) {
             if ($cfg['admin_password'] === hash('sha256', $_POST['admin_password'])) {
                 jirafeau_admin_session_start();
@@ -117,9 +118,13 @@ if (php_sapi_name() == "cli") {
     /* Show admin interface if not downloading a file. */
     if (!(isset($_POST['action']) && strcmp($_POST['action'], 'download') == 0)) {
         require(JIRAFEAU_ROOT . 'lib/template/header.php'); ?><h2><?php echo t('ADMIN_INTERFACE'); ?></h2><?php
-          ?><h2>(version <?php echo JIRAFEAU_VERSION ?>)</h2><?php
+        ?><h2>(version <?php echo JIRAFEAU_VERSION ?>)</h2><?php
+
+        if ($cfg['enable_crypt'] && !(extension_loaded('sodium'))) {
+            echo '<div class="error"><p>'.t('SODIUM_UNAVAILABLE').'</p></div>';
+        }
 
-          ?><div id = "admin">
+        ?><div id = "admin">
           <fieldset><legend><?php echo t('ACTIONS'); ?></legend>
           <table>
           <form method="post">
@@ -301,5 +306,8 @@ if (php_sapi_name() == "cli") {
     }
 
     require(JIRAFEAU_ROOT.'lib/template/footer.php');
+} else {
+    require(JIRAFEAU_ROOT . 'lib/template/header.php');
+    jirafeau_fatal_error(t('ACCESS_KO'), $cfg);
 }
 ?>

patrick-canterino.de