updating templates to have dedicated wordpress login page, updated phpmyadmin page to be more correct
This commit is contained in:
@@ -249,18 +249,19 @@ class Handler(BaseHTTPRequestHandler):
|
||||
self.wfile.write(api_response('/api/config').encode())
|
||||
return True
|
||||
|
||||
if path in ['/admin', '/admin/', '/admin/login', '/login', '/wp-login.php']:
|
||||
if path in ['/admin', '/admin/', '/admin/login', '/login']:
|
||||
self.send_response(200)
|
||||
self.send_header('Content-type', 'text/html')
|
||||
self.end_headers()
|
||||
self.wfile.write(html_templates.login_form().encode())
|
||||
return True
|
||||
|
||||
if path == '/wp-admin' or path == '/wp-admin/':
|
||||
# WordPress login page
|
||||
if path in ['/wp-login.php', '/wp-login', '/wp-admin', '/wp-admin/']:
|
||||
self.send_response(200)
|
||||
self.send_header('Content-type', 'text/html')
|
||||
self.end_headers()
|
||||
self.wfile.write(html_templates.login_form().encode())
|
||||
self.wfile.write(html_templates.wp_login().encode())
|
||||
return True
|
||||
|
||||
if path in ['/wp-content/', '/wp-includes/'] or 'wordpress' in path.lower():
|
||||
|
||||
@@ -1,24 +1,286 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html lang="en" dir="ltr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="robots" content="noindex,nofollow">
|
||||
<title>phpMyAdmin</title>
|
||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><rect fill='%236c78af' width='32' height='32' rx='4'/><text x='16' y='22' font-size='18' fill='white' text-anchor='middle' font-family='sans-serif' font-weight='bold'>pma</text></svg>">
|
||||
<style>
|
||||
body {{ font-family: 'Segoe UI', Tahoma, sans-serif; margin: 0; background: #f0f0f0; }}
|
||||
.header {{ background: #2979ff; color: white; padding: 10px 20px; }}
|
||||
.login {{ background: white; width: 400px; margin: 100px auto; padding: 30px; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }}
|
||||
input {{ width: 100%; padding: 8px; margin: 8px 0; border: 1px solid #ddd; }}
|
||||
button {{ padding: 10px 20px; background: #2979ff; color: white; border: none; cursor: pointer; }}
|
||||
* {{
|
||||
box-sizing: border-box;
|
||||
}}
|
||||
body {{
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
||||
font-size: 14px;
|
||||
background: #fffffc;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #444;
|
||||
}}
|
||||
#page_content {{
|
||||
margin: 0 auto;
|
||||
max-width: 960px;
|
||||
padding: 20px;
|
||||
}}
|
||||
.container-fluid {{
|
||||
display: flex;
|
||||
min-height: 100vh;
|
||||
}}
|
||||
#pma_navigation {{
|
||||
width: 240px;
|
||||
background: #f3f3f3;
|
||||
border-right: 1px solid #ddd;
|
||||
padding: 10px;
|
||||
}}
|
||||
#pma_navigation_header {{
|
||||
text-align: center;
|
||||
padding: 15px 10px;
|
||||
border-bottom: 1px solid #ddd;
|
||||
margin-bottom: 10px;
|
||||
}}
|
||||
#pma_navigation_header img {{
|
||||
max-width: 160px;
|
||||
}}
|
||||
.logo-text {{
|
||||
font-size: 24px;
|
||||
font-weight: bold;
|
||||
color: #6c78af;
|
||||
}}
|
||||
.logo-text span {{
|
||||
color: #f89c0e;
|
||||
}}
|
||||
#pma_main {{
|
||||
flex: 1;
|
||||
padding: 20px;
|
||||
background: #fff;
|
||||
}}
|
||||
.login_form {{
|
||||
max-width: 500px;
|
||||
margin: 40px auto;
|
||||
background: #fff;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 1px 3px rgba(0,0,0,0.08);
|
||||
}}
|
||||
.login_form h1 {{
|
||||
background: #f3f3f3;
|
||||
margin: 0;
|
||||
padding: 15px 20px;
|
||||
font-size: 16px;
|
||||
font-weight: normal;
|
||||
border-bottom: 1px solid #ddd;
|
||||
color: #333;
|
||||
}}
|
||||
.login_form h1 img {{
|
||||
vertical-align: middle;
|
||||
margin-right: 8px;
|
||||
}}
|
||||
.login_form form {{
|
||||
padding: 20px;
|
||||
}}
|
||||
.item {{
|
||||
margin-bottom: 15px;
|
||||
}}
|
||||
.item label {{
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
}}
|
||||
.item input[type="text"],
|
||||
.item input[type="password"],
|
||||
.item select {{
|
||||
width: 100%;
|
||||
padding: 8px 10px;
|
||||
border: 1px solid #aaa;
|
||||
border-radius: 2px;
|
||||
font-size: 14px;
|
||||
background: #fff;
|
||||
}}
|
||||
.item input:focus,
|
||||
.item select:focus {{
|
||||
border-color: #6c78af;
|
||||
outline: none;
|
||||
box-shadow: 0 0 0 2px rgba(108, 120, 175, 0.2);
|
||||
}}
|
||||
.item select {{
|
||||
cursor: pointer;
|
||||
}}
|
||||
.checkbox-item {{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}}
|
||||
.checkbox-item input {{
|
||||
margin: 0;
|
||||
}}
|
||||
fieldset {{
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 2px;
|
||||
padding: 15px;
|
||||
margin: 0 0 15px 0;
|
||||
}}
|
||||
legend {{
|
||||
font-weight: 500;
|
||||
padding: 0 8px;
|
||||
color: #333;
|
||||
}}
|
||||
.btn {{
|
||||
display: inline-block;
|
||||
padding: 8px 20px;
|
||||
background: #6c78af;
|
||||
color: #fff;
|
||||
border: none;
|
||||
border-radius: 2px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
}}
|
||||
.btn:hover {{
|
||||
background: #5a6699;
|
||||
}}
|
||||
.server-choice {{
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
margin-bottom: 15px;
|
||||
}}
|
||||
.server-choice label {{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
cursor: pointer;
|
||||
}}
|
||||
.footer {{
|
||||
text-align: center;
|
||||
margin-top: 20px;
|
||||
padding-top: 15px;
|
||||
border-top: 1px solid #ddd;
|
||||
font-size: 12px;
|
||||
color: #888;
|
||||
}}
|
||||
.footer a {{
|
||||
color: #6c78af;
|
||||
text-decoration: none;
|
||||
}}
|
||||
.footer a:hover {{
|
||||
text-decoration: underline;
|
||||
}}
|
||||
.lang-select {{
|
||||
margin-top: 15px;
|
||||
padding-top: 15px;
|
||||
border-top: 1px solid #eee;
|
||||
}}
|
||||
.lang-select label {{
|
||||
display: inline;
|
||||
margin-right: 10px;
|
||||
}}
|
||||
.lang-select select {{
|
||||
width: auto;
|
||||
padding: 5px 10px;
|
||||
}}
|
||||
.nav-item {{
|
||||
padding: 8px 12px;
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
border-radius: 2px;
|
||||
}}
|
||||
.nav-item:hover {{
|
||||
background: #e8e8e8;
|
||||
}}
|
||||
.error-message {{
|
||||
display: none;
|
||||
}}
|
||||
@media (max-width: 768px) {{
|
||||
.container-fluid {{
|
||||
flex-direction: column;
|
||||
}}
|
||||
#pma_navigation {{
|
||||
width: 100%;
|
||||
border-right: none;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}}
|
||||
.login_form {{
|
||||
margin: 20px;
|
||||
}}
|
||||
}}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="header"><h1>phpMyAdmin</h1></div>
|
||||
<div class="login">
|
||||
<h2>MySQL Server Login</h2>
|
||||
<form action="/phpMyAdmin/index.php" method="post">
|
||||
<input type="text" name="pma_username" placeholder="Username">
|
||||
<input type="password" name="pma_password" placeholder="Password">
|
||||
<button type="submit">Go</button>
|
||||
</form>
|
||||
<div class="container-fluid">
|
||||
<div id="pma_navigation">
|
||||
<div id="pma_navigation_header">
|
||||
<div class="logo-text">php<span>My</span>Admin</div>
|
||||
</div>
|
||||
<nav>
|
||||
<a href="#" class="nav-item">Databases</a>
|
||||
<a href="#" class="nav-item">SQL</a>
|
||||
<a href="#" class="nav-item">Status</a>
|
||||
<a href="#" class="nav-item">User accounts</a>
|
||||
<a href="#" class="nav-item">Export</a>
|
||||
<a href="#" class="nav-item">Import</a>
|
||||
<a href="#" class="nav-item">Settings</a>
|
||||
</nav>
|
||||
</div>
|
||||
<div id="pma_main">
|
||||
<div class="login_form">
|
||||
<h1>
|
||||
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#6c78af" stroke-width="2" style="vertical-align: middle; margin-right: 8px;">
|
||||
<rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect>
|
||||
<path d="M7 11V7a5 5 0 0 1 10 0v4"></path>
|
||||
</svg>
|
||||
Log in
|
||||
</h1>
|
||||
<form method="post" action="/phpmyadmin/index.php" name="login_form" autocomplete="off">
|
||||
<fieldset>
|
||||
<legend>Log in</legend>
|
||||
<div class="item">
|
||||
<label for="input_servername">Server Choice:</label>
|
||||
<select name="server" id="input_servername">
|
||||
<option value="1">127.0.0.1</option>
|
||||
<option value="2">localhost</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="item">
|
||||
<label for="input_username">Username:</label>
|
||||
<input type="text" name="pma_username" id="input_username" value="" autocomplete="username" autofocus>
|
||||
</div>
|
||||
<div class="item">
|
||||
<label for="input_password">Password:</label>
|
||||
<input type="password" name="pma_password" id="input_password" value="" autocomplete="current-password">
|
||||
</div>
|
||||
</fieldset>
|
||||
<input type="hidden" name="token" value="a1b2c3d4e5f6g7h8i9j0">
|
||||
<input type="hidden" name="set_session" value="1">
|
||||
<button type="submit" class="btn" id="input_go" value="Log in">Log in</button>
|
||||
<div class="lang-select">
|
||||
<label for="lang_select">Language:</label>
|
||||
<select name="lang" id="lang_select">
|
||||
<option value="en" selected>English</option>
|
||||
<option value="de">Deutsch</option>
|
||||
<option value="es">Español</option>
|
||||
<option value="fr">Français</option>
|
||||
<option value="it">Italiano</option>
|
||||
<option value="ja">日本語</option>
|
||||
<option value="ko">한국어</option>
|
||||
<option value="nl">Nederlands</option>
|
||||
<option value="pl">Polski</option>
|
||||
<option value="pt">Português</option>
|
||||
<option value="ru">Русский</option>
|
||||
<option value="zh">中文</option>
|
||||
</select>
|
||||
</div>
|
||||
</form>
|
||||
<div class="footer">
|
||||
<a href="https://www.phpmyadmin.net/docs/" target="_blank">Documentation</a> |
|
||||
<a href="https://www.phpmyadmin.net/" target="_blank">Official Homepage</a> |
|
||||
<a href="https://github.com/phpmyadmin/phpmyadmin" target="_blank">Contribute</a>
|
||||
<br><br>
|
||||
phpMyAdmin 5.2.1
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
||||
227
src/templates/html/wp_login.html
Normal file
227
src/templates/html/wp_login.html
Normal file
@@ -0,0 +1,227 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<meta name="robots" content="max-image-preview:large, noindex, noarchive">
|
||||
<title>Log In ‹ WordPress — WordPress</title>
|
||||
<style>
|
||||
html {{
|
||||
background: #f0f0f1;
|
||||
min-height: 100%;
|
||||
}}
|
||||
body {{
|
||||
background: #f0f0f1;
|
||||
min-height: 100%;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||
font-size: 13px;
|
||||
line-height: 1.4em;
|
||||
color: #3c434a;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}}
|
||||
a {{
|
||||
color: #2271b1;
|
||||
text-decoration: none;
|
||||
}}
|
||||
a:hover, a:active {{
|
||||
color: #135e96;
|
||||
}}
|
||||
#login {{
|
||||
width: 320px;
|
||||
padding: 8% 0 0;
|
||||
margin: auto;
|
||||
}}
|
||||
#login h1 {{
|
||||
text-align: center;
|
||||
}}
|
||||
#login h1 a {{
|
||||
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4NCA4NCI+PHBhdGggZD0iTTQyIDBDMTguOCAwIDAgMTguOCAwIDQyczE4LjggNDIgNDIgNDIgNDItMTguOCA0Mi00MlM2NS4yIDAgNDIgMHptMCA3OC40QzIxLjggNzguNCA1LjYgNjIuMiA1LjYgNDJTMjEuOCA1LjYgNDIgNS42IDc4LjQgMjEuOCA3OC40IDQyIDYyLjIgNzguNCA0MiA3OC40ek0yMC4xIDQyYzAgNy42IDQuNSAxNC4yIDEwLjkgMTcuM2wtOS4yLTI1LjJjLTEuMSAyLjUtMS43IDUuMi0xLjcgNy45em0zNi44LTEuMWMwLTIuNC0uOS01LjYtMi40LTcuMi0xLjUtMi0zLTMuNC0zLTUuMiAwLTIgMS41LTMuOSAzLjctMy45aC4zYy00LjktNC42LTExLjQtNy40LTE4LjUtNy40LTkuNiAwLTE4IDQuOS0yMi45IDEyLjMuNiAwIDEuMiAwIDEuNyAwIDIuOCAwIDcuMi0uMyA3LjItLjNzLjItLjEuMi0uMi0xLjUtLjEtMS41LS4xYy45LTEuMSAxLjYtMy4xIDEuNi0zLjEuMiAwIDEuOS41IDIuNS41cy42LjEuNi4xYy0xLjMuOC0xLjUgMy4xLTEuNSAzLjFzMCAuNC40LjRjLjMgMCAuOC0uMy44LS4zLjguNCAxLjcgMi4xIDEuNyAyLjF2LS4yYy42IDEuNCAyLjMgNS4yIDIuMyA1LjIgMS4xIDMuMiAyLjggNS41IDQuMSA3LjIgMS4zIDEuNyAyLjggMy4xIDQuNCAzLjggNC4yLTEuMSA3LjItNC4zIDguNS03LjZsLjItLjVjLjEtLjMuMi0uNi40LTFsLTYuNi0xOGMtLjYtMS42LTEtMi43LTEuNC0zLjhoLS41Yy0uNCAwLS43LjEtLjcuMS0uMS4xLjIuMi4yLjJzMS40LjEgMi4yLjRjLjkuMiAyIC43IDIgLjcuMy4xLjcuMy43LjNzLjEgMCAuMS0uMWMwIDAgLjEtLjItLjQtLjQtLjMtLjEtMS0uMy0xLjYtLjUtLjUtLjEtLjktLjItMS0uMi0uMSAwLS4xLS4xLS4xLS4xdi0uMWMwIC4xLjEuMS4xLjFzMCAuMS0uMS4xYy0uMi4xLjEuMy41LjVzLjkuNSAxLjQuN2MuNi4zIDEuMS43IDEuNC45LjMuMy42LjkuOSAxLjIuMy40LjYgMS4xLjggMS43bDQuMSAxMy44YzIuNy0xLjEgNC42LTMuNyA0LjYtNi43eiIgZmlsbD0iIzMzMzMzMyIvPjwvc3ZnPg==');
|
||||
background-size: 84px;
|
||||
background-position: center top;
|
||||
background-repeat: no-repeat;
|
||||
color: #3c434a;
|
||||
height: 84px;
|
||||
font-size: 0;
|
||||
display: block;
|
||||
outline: 0;
|
||||
}}
|
||||
.login form {{
|
||||
margin-top: 20px;
|
||||
margin-left: 0;
|
||||
padding: 26px 24px 34px;
|
||||
font-weight: 400;
|
||||
overflow: hidden;
|
||||
background: #fff;
|
||||
border: 1px solid #c3c4c7;
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, .04);
|
||||
}}
|
||||
.login form .input, .login input[type="text"], .login input[type="password"] {{
|
||||
font-size: 24px;
|
||||
width: 100%;
|
||||
padding: 3px;
|
||||
margin: 2px 6px 16px 0;
|
||||
background: #fff;
|
||||
border: 1px solid #8c8f94;
|
||||
box-shadow: none;
|
||||
color: #2c3338;
|
||||
outline: none;
|
||||
}}
|
||||
.login form .input:focus {{
|
||||
border-color: #2271b1;
|
||||
box-shadow: 0 0 0 1px #2271b1;
|
||||
}}
|
||||
.login label {{
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
display: inline-block;
|
||||
margin-bottom: 3px;
|
||||
}}
|
||||
.login .forgetmenot {{
|
||||
margin: 2px 0 24px;
|
||||
}}
|
||||
.login .forgetmenot label {{
|
||||
font-size: 12px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}}
|
||||
.login .forgetmenot input {{
|
||||
margin: 0 4px 0 0;
|
||||
}}
|
||||
.wp-hide-pw {{
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
padding: 0 15px;
|
||||
background: transparent;
|
||||
border: none;
|
||||
color: #2271b1;
|
||||
cursor: pointer;
|
||||
}}
|
||||
.wp-hide-pw:hover {{
|
||||
color: #135e96;
|
||||
}}
|
||||
.user-pass-wrap {{
|
||||
position: relative;
|
||||
}}
|
||||
.wp-pwd {{
|
||||
position: relative;
|
||||
}}
|
||||
#wp-submit {{
|
||||
float: right;
|
||||
text-decoration: none;
|
||||
font-size: 13px;
|
||||
line-height: 2.15384615;
|
||||
min-height: 32px;
|
||||
margin: 0;
|
||||
padding: 0 12px;
|
||||
cursor: pointer;
|
||||
border: 1px solid #2271b1;
|
||||
border-radius: 3px;
|
||||
white-space: nowrap;
|
||||
box-sizing: border-box;
|
||||
background: #2271b1;
|
||||
color: #fff;
|
||||
}}
|
||||
#wp-submit:hover {{
|
||||
background: #135e96;
|
||||
border-color: #135e96;
|
||||
color: #fff;
|
||||
}}
|
||||
p.submit {{
|
||||
margin-bottom: 0;
|
||||
}}
|
||||
#nav {{
|
||||
margin: 24px 0 0 0;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}}
|
||||
#nav a {{
|
||||
color: #50575e;
|
||||
}}
|
||||
#nav a:hover {{
|
||||
color: #135e96;
|
||||
}}
|
||||
#backtoblog {{
|
||||
margin: 16px 0 0 0;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}}
|
||||
#backtoblog a {{
|
||||
color: #50575e;
|
||||
}}
|
||||
#backtoblog a:hover {{
|
||||
color: #135e96;
|
||||
}}
|
||||
.privacy-policy-page-link {{
|
||||
text-align: center;
|
||||
margin-top: 16px;
|
||||
}}
|
||||
.privacy-policy-page-link a {{
|
||||
color: #50575e;
|
||||
font-size: 12px;
|
||||
}}
|
||||
@media screen and (max-width: 400px) {{
|
||||
#login {{
|
||||
width: 100%;
|
||||
padding: 20px;
|
||||
box-sizing: border-box;
|
||||
}}
|
||||
}}
|
||||
</style>
|
||||
</head>
|
||||
<body class="login js login-action-login wp-core-ui locale-en-us">
|
||||
<div id="login">
|
||||
<h1><a href="https://wordpress.org/">Powered by WordPress</a></h1>
|
||||
<form name="loginform" id="loginform" action="/wp-login.php" method="post">
|
||||
<p>
|
||||
<label for="user_login">Username or Email Address</label>
|
||||
<input type="text" name="log" id="user_login" class="input" value="" size="20" autocapitalize="off" autocomplete="username" required>
|
||||
</p>
|
||||
<div class="user-pass-wrap">
|
||||
<label for="user_pass">Password</label>
|
||||
<div class="wp-pwd">
|
||||
<input type="password" name="pwd" id="user_pass" class="input password-input" value="" size="20" autocomplete="current-password" spellcheck="false" required>
|
||||
<button type="button" class="wp-hide-pw hide-if-no-js" data-toggle="0" aria-label="Show password">
|
||||
<span class="dashicons dashicons-visibility" aria-hidden="true"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<p class="forgetmenot">
|
||||
<label>
|
||||
<input name="rememberme" type="checkbox" id="rememberme" value="forever">
|
||||
Remember Me
|
||||
</label>
|
||||
</p>
|
||||
<p class="submit">
|
||||
<input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="Log In">
|
||||
<input type="hidden" name="redirect_to" value="/wp-admin/">
|
||||
<input type="hidden" name="testcookie" value="1">
|
||||
</p>
|
||||
</form>
|
||||
<p id="nav">
|
||||
<a href="/wp-login.php?action=lostpassword">Lost your password?</a>
|
||||
</p>
|
||||
<p id="backtoblog">
|
||||
<a href="/">← Go to WordPress</a>
|
||||
</p>
|
||||
<div class="privacy-policy-page-link">
|
||||
<a href="/privacy-policy/">Privacy Policy</a>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
// Toggle password visibility
|
||||
document.querySelector('.wp-hide-pw').addEventListener('click', function() {{
|
||||
var pwdInput = document.getElementById('user_pass');
|
||||
if (pwdInput.type === 'password') {{
|
||||
pwdInput.type = 'text';
|
||||
this.setAttribute('aria-label', 'Hide password');
|
||||
}} else {{
|
||||
pwdInput.type = 'password';
|
||||
this.setAttribute('aria-label', 'Show password');
|
||||
}}
|
||||
}});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -28,6 +28,11 @@ def phpmyadmin() -> str:
|
||||
return load_template("phpmyadmin")
|
||||
|
||||
|
||||
def wp_login() -> str:
|
||||
"""Generate fake WordPress login page"""
|
||||
return load_template("wp_login")
|
||||
|
||||
|
||||
def robots_txt() -> str:
|
||||
"""Generate juicy robots.txt"""
|
||||
return load_template("robots.txt")
|
||||
|
||||
@@ -40,6 +40,9 @@ def load_template(name: str, **kwargs) -> str:
|
||||
>>> load_template("robots.txt") # Loads html/robots.txt
|
||||
>>> load_template("directory_listing", path="/var/www", rows="<tr>...</tr>")
|
||||
"""
|
||||
# debug
|
||||
# print(f"Loading Template: {name}")
|
||||
|
||||
# Check cache first
|
||||
if name not in _template_cache:
|
||||
# Determine file path based on whether name has an extension
|
||||
@@ -58,7 +61,6 @@ def load_template(name: str, **kwargs) -> str:
|
||||
# Apply substitutions if kwargs provided
|
||||
if kwargs:
|
||||
template = template.format(**kwargs)
|
||||
|
||||
return template
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user