ntopng/scripts/lua/captive_portal.lua
2020-03-24 12:39:08 +01:00

120 lines
3.3 KiB
Lua

--
-- (C) 2013-20 - ntop.org
--
local dirs = ntop.getDirs()
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
-- io.write ("Session:".._SESSION["session"].."\n")
require "lua_utils"
local page_utils = require("page_utils")
sendHTTPContentTypeHeader('text/html')
page_utils.print_header_minimal()
local info = ntop.getInfo()
print [[
<div class="container-narrow">
<style type="text/css">
body {
padding-top: 40px;
padding-bottom: 40px;
background-color: #f5f5f5;
}
.form-signin {
max-width: 400px;
padding: 9px 29px 29px;
margin: 0 auto 20px;
background-color: #fff;
border: 1px solid #e5e5e5;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);
-moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);
box-shadow: 0 1px 2px rgba(0,0,0,.05);
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
margin-bottom: 10px;
}
.form-signin input[type="text"],
.form-signin input[type="password"] {
font-size: 16px;
height: auto;
margin-bottom: 15px;
padding: 7px 9px;
}
</style>
<div class="container">
<form id="form_add_user" role="form" data-toggle="validator" class="form-signin" onsubmit="return makeUsernameLowercase();" action="]] print(ntop.getHttpPrefix()) print[[/lua/authorize_captive.lua]]
local r = _GET["referer"]
local additional_keys = {
"host",
"ifname",
"ifid",
"page"
}
for _,id in ipairs(additional_keys) do
if(_GET[id] ~= nil) then
r = r .. "&" .. id .. "=" .._GET[id]
end
end
if not isEmptyString(r) then
print("?referer="..r)
end
print[[" method="POST">
<h2 class="form-signin-heading" style="font-weight: bold;">]] print(info["product"]) print [[ Access Portal</h2>
<div class="form-group has-feedback">
<input type="hidden" class="form-control" name="username">
<input type="text" class="form-control" name="_username" placeholder="]] print(i18n("login.username")) print[[" pattern="^[\w\.%]{1,}$" required>
<input type="password" class="form-control" name="password" placeholder="]] print(i18n("login.password")) print[[" pattern="]] print(getPasswordInputPattern()) print[[" required>
<input type="text" class="form-control" name="label" placeholder="]] print(i18n("login.device_label")) print[[" pattern="^[ \w\.%]{1,}$" required>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit">]] print(i18n("login.login")) print[[</button>
<div class="row">
<div >&nbsp;</div>
<div class="col-lg-12">
<small>
<p>]] print(i18n("login.enter_credentials")) print[[
</p>
<p>]] print(info["copyright"]) print [[
</small>
</div>
</div>
</form>
<script>
$("input:text:visible:first").focus();
//$('#form_add_user').validator();
function makeUsernameLowercase() {
var target = $('#form_add_user input[name="username"]');
var origin = $('#form_add_user input[name="_username"]');
target.val(origin.val().toLowerCase());
origin.removeAttr("name");
return true;
}
</script>
</div> <!-- /container -->
</body>
</html>
]]