diff --git a/.htaccess b/.htaccess
new file mode 100644
index 00000000..a77c94a7
--- /dev/null
+++ b/.htaccess
@@ -0,0 +1,11 @@
+# Generated file from class.acl.php
+ # Disable directory browsing
+ Options -Indexes
+
+ Order deny,allow
+ Deny from all
+
+
+ Order Allow,Deny
+ Allow from all
+
\ No newline at end of file
diff --git a/phpwf/plugins/class.acl.php b/phpwf/plugins/class.acl.php
index 1183c87a..694ecad9 100644
--- a/phpwf/plugins/class.acl.php
+++ b/phpwf/plugins/class.acl.php
@@ -570,12 +570,20 @@ class Acl
public function Login()
{
- $this->app->Tpl->Set('LOGINWARNING', 'display:none;visibility:hidden;');
- if($this->IsInLoginLockMode() === true){
- $this->app->Tpl->Set('LOGINWARNING', '');
+
+ $result = $this->CheckHtaccess();
+ if ($result !== true) {
+ $this->app->Tpl->Set('LOGINWARNING_TEXT', "Achtung: Zugriffskonfiguration (htaccess) fehlerhaft. Bitte wenden Sie sich an Ihren an Ihren Administrator.
($result)");
return;
}
+ if($this->IsInLoginLockMode() === true)
+ {
+ $this->app->Tpl->Set('LOGINWARNING_TEXT', 'Achtung: Es werden gerade Wartungsarbeiten in Ihrem System (z.B. Update oder Backup) durch Ihre IT-Abteilung durchgeführt. Das System sollte in wenigen Minuten wieder erreichbar sein. Für Rückfragen wenden Sie sich bitte an Ihren Administrator.');
+ return;
+ }
+ $this->app->Tpl->Set('LOGINWARNING_VISIBLE', 'hidden');
+
$multidbs = $this->app->getDbs();
if(count($multidbs) > 1)
{
@@ -1206,4 +1214,65 @@ class Acl
}
+ // HTACCESS SECURITY
+ // Check for correct .htaccess settings
+ // true if ok, else error text
+ protected function CheckHtaccess() : mixed {
+
+ $nominal = array( '# Generated file from class.acl.php
+ # Disable directory browsing
+ Options -Indexes
+
+ Order deny,allow
+ Deny from all
+
+
+ Order Allow,Deny
+ Allow from all
+ ',
+ '# Generated file from class.acl.php
+ SetEnv OPENXE_HTACCESS on
+
+ # Disable directory browsing
+ Options -Indexes
+
+ Order deny,allow
+ Allow from all
+
+
+ Order Allow,Deny
+ Deny from all
+
+
+
+ Order Allow,Deny
+ Allow from all
+ ');
+
+ $script_file_name = $_SERVER['SCRIPT_FILENAME'];
+ $htaccess_path = array(
+ dirname(dirname($script_file_name))."/.htaccess", // root
+ dirname($script_file_name)."/.htaccess"); // www
+
+ for ($count = 0;$count < 2;$count++) {
+ $htaccess = file_get_contents($htaccess_path[$count]);
+ if ($htacess === false) {
+ return("FATAL: ".$htaccess_path[$count]." nicht gefunden");
+ }
+
+ $result = strcmp(trim($htaccess[$count]),trim($nominal[$count]));
+ if ($result !== 0) {
+ $result = file_put_contents($htaccess_path[$count],$nominal[$count]);
+ if ($result === false) {
+ return("FATAL: ".$htaccess_path[$count]." fehlerhaft");
+ }
+ }
+ }
+ if (!isset($_SERVER['OPENXE_HTACCESS'])) {
+ return("FATAL: htaccess nicht aktiv.");
+ }
+ return(true);
+ // HTACCESS SECURITY END
+ }
+
}
diff --git a/www/.htaccess b/www/.htaccess
new file mode 100644
index 00000000..0e700325
--- /dev/null
+++ b/www/.htaccess
@@ -0,0 +1,18 @@
+# Generated file from class.acl.php
+ SetEnv OPENXE_HTACCESS on
+
+ # Disable directory browsing
+ Options -Indexes
+
+ Order deny,allow
+ Allow from all
+
+
+ Order Allow,Deny
+ Deny from all
+
+
+
+ Order Allow,Deny
+ Allow from all
+
\ No newline at end of file
diff --git a/www/themes/new/templates/loginpage.tpl b/www/themes/new/templates/loginpage.tpl
index 92e0d0dd..ef538d1f 100644
--- a/www/themes/new/templates/loginpage.tpl
+++ b/www/themes/new/templates/loginpage.tpl
@@ -31,7 +31,7 @@
Willkommen bei OpenXE ERP.
Bitte gib Deinen Benutzernamen und Passwort ein!
-
Achtung: Es werden gerade Wartungsarbeiten in Ihrem System (z.B. Update oder Backup) durch Ihre IT-Abteilung durchgeführt. Das System sollte in wenigen Minuten wieder erreichbar sein. Für Rückfragen wenden Sie sich bitte an Ihren Administrator.
+
[SPERRMELDUNGNACHRICHT]
[PAGE]