diff --git a/public/settings.php b/public/settings.php
index affea6f3..aaf7c8ff 100644
--- a/public/settings.php
+++ b/public/settings.php
@@ -159,12 +159,18 @@ elseif ($action == 'savesettings_security') // save security
$validConfig = array(
'securelogin', 'securetracker', 'https_announce_url','iv','maxip','maxloginattempts','changeemail','cheaterdet','nodetect',
'guest_visit_type', 'guest_visit_value_static_page', 'guest_visit_value_custom_content', 'guest_visit_value_redirect',
+ 'login_type', 'login_secret_lifetime',
);
GetVar($validConfig);
$SECURITY = [];
foreach($validConfig as $config) {
$SECURITY[$config] = $$config ?? null;
}
+ if ($_POST['login_secret_regenerate'] == 'yes') {
+ $minute = intval($_POST['login_secret_lifetime']);
+ $SECURITY['login_secret_deadline'] = date('Y-m-d H:i:s', strtotime("+ $minute minutes"));
+ $SECURITY['login_secret'] = md5(microtime(true));
+ }
saveSetting('security', $SECURITY);
$actiontime = date("F j, Y, g:i a");
write_log("Tracker SECURITY settings updated by $CURUSER[username]. $actiontime",'mod');
@@ -298,7 +304,7 @@ elseif ($action == 'securitysettings') //security settings
tr($lang_settings['row_max_ips']," ".$lang_settings['text_max_ips_note'], 1);
tr($lang_settings['row_max_login_attemps']," ".$lang_settings['text_max_login_attemps_note'], 1);
- $guestVisitTypeRadio = '';
+ $guestVisitTypeRadio = '';
$guestVisitTypeRadio .= '
';
$guestVisitTypeRadio .= '
';
$guestVisitTypeRadio .= '
';
@@ -320,8 +326,27 @@ elseif ($action == 'securitysettings') //security settings
print '';
$input = sprintf('', $SECURITY['guest_visit_value_redirect'] ?? '');
tr($lang_settings['row_guest_visit_value_redirect'], $input, 1);
- print '';
+ print '';
+ $loginTypeRadio = '';
+ $loginTypeRadio .= '';
+ tr($lang_settings['row_login_type'], $loginTypeRadio, 1);
+
+ print '';
+ $loginSecret = sprintf('%s:%s', $lang_settings['text_login_secret_current'], $SECURITY['login_secret'] ?? '');
+ if (!empty($SECURITY['login_secret'])) {
+ $loginSecret .= sprintf('
%s: %s/login.php?secret=%s', $lang_settings['text_login_url_with_secret'], getSchemeAndHttpHost(), $SECURITY['login_secret']);
+ }
+ $loginSecret .= sprintf('
', !empty($SECURITY['login_secret']) ? ' checked' : '', $lang_settings['text_login_secret_regenerate_no']);
+ $loginSecret .= sprintf('
', empty($SECURITY['login_secret']) ? ' checked' : '', $lang_settings['text_login_secret_regenerate_yes']);
+ tr($lang_settings['row_login_secret'], $loginSecret, 1);
+
+ $loginSecretLifetime = sprintf('%s', $SECURITY['login_secret_lifetime'], $lang_settings['text_login_secret_lifetime_unit']);
+ if (!empty($SECURITY['login_secret_lifetime'])) {
+ $loginSecretLifetime .= sprintf('%s: %s', $lang_settings['text_login_secret_lifetime_deadline'], $SECURITY['login_secret_deadline']);
+ }
+ tr($lang_settings['row_login_secret_lifetime'], $loginSecretLifetime, 1);
+ print '';
tr($lang_settings['row_save_settings'],"", 1);
print ("");
diff --git a/resources/static-pages/beian-aliyun2.html b/resources/static-pages/beian-aliyun2.html
deleted file mode 100644
index a23ef687..00000000
--- a/resources/static-pages/beian-aliyun2.html
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
-
-
-
-
-
- 阿里云备案阻断页
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/resources/templates/guest-visit-custom-content.php b/resources/templates/guest-visit-custom-content.php
new file mode 100644
index 00000000..34bf22aa
--- /dev/null
+++ b/resources/templates/guest-visit-custom-content.php
@@ -0,0 +1,14 @@
+
+
+
+
+ Hello World!
+
+
+
+
+
\ No newline at end of file