<?php
/**
* LabyrinthAP is open source software offered under GNU General Public License v3.0.
* Ongoing development is reliant on voluntary financial support through donations to the project.
* I hope that you find using LabyrithAP beneficial and also hope there's sufficient widespread
* support for it to financially support it's future. Seeing support for it will assist in continued
* improvements as well as adapting it to future requirements.
*
* LabyrinthAP was initially conceived to provide users with a platform agnostic way to connect networked
* devices to Lokinet without the need to install and configure Lokinet applications on individual systems.
* From initial research on compiling Lokinet for ARM, it was demonstrated that it could be feasibile to
* use SBC's to create access points which could encrypt, decrypt, route and onion route traffic over
* Lokinet while managing dns requirements. In addition it could provide a means to select and connect
* to various exits located all around the globe. Through utilizing various robust packages and coding
* custom networking configurations LabyrinthAP utilizing Lokinet is able to achieve all this.
*
* This early research and further development led to the current version of LabyrithAP which provides
* a solution which is able to connect virtually any networked device to Lokinet without the device
* needing to have Lokinet installed, configured or running the application natively. The devices need
* only to connect to LabyrinthAP and it will handle the rest of Lokinet's connection requirements.
*
* If you wish to donate to this development the Oxen wallet for LabyrinthAP is:
* LA8VDcoJgiv2bSiVqyaT6hJ67LXbnQGpf9Uk3zh9ikUKPJUWeYbgsd9gxQ5ptM2hQNSsCaRETQ3GM9FLDe7BGqcm4ve69bh
*
* Additional information can be found on the github repo located at:
* https://github.com/necro-nemesis/LabyrinthAP. Further discussions and assistance with using Lokinet is provided on Session in the Lokinet open group.
*
* I hope that LabyrinthAP will continue to service your needs for gaining access to Lokinet.
*
* Thank-you for using LabyrinthAP,
*
* Technical Tumbleweed
*
*
* @author TechnicalTumbleweed (Oxen-> Session Lokinet/Telegram Oxen Community)
* @license GNU General Public License, version 3 (GPL-3.0)
* @version 2.7
* @link https://github.com/necro-nemesis/LabyrinthAP
*/
session_start();
include_once( 'includes/config.php' );
include_once( RASPI_CONFIG.'/raspap.php' );
include_once( 'includes/locale.php');
include_once( 'includes/functions.php' );
include_once( 'includes/dashboard.php' );
include_once( 'includes/authenticate.php' );
include_once( 'includes/admin.php' );
include_once( 'includes/dhcp.php' );
include_once( 'includes/hostapd.php' );
include_once( 'includes/system.php' );
include_once( 'includes/configure_client.php' );
include_once( 'includes/networking.php' );
include_once( 'includes/themes.php' );
include_once( 'includes/data_usage.php' );
$output = $return = 0;
$page = $_GET['page'];
if (empty($_SESSION['csrf_token'])) {
if (function_exists('mcrypt_create_iv')) {
$_SESSION['csrf_token'] = bin2hex(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM));
} else {
$_SESSION['csrf_token'] = bin2hex(openssl_random_pseudo_bytes(32));
}
}
$csrf_token = $_SESSION['csrf_token'];
if(!isset($_COOKIE['theme'])) {
$theme = "custom.css";
} else {
$theme = $_COOKIE['theme'];
}
$theme_url = 'dist/css/'.htmlspecialchars($theme, ENT_QUOTES);
?><!DOCTYPE html>
< html lang = "en" >
< head >
< meta charset = "utf-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
< meta name = "description" content = "" >
< meta name = "author" content = "" >
< title > <?php echo _ ( "LabyrinthAP" ); ?> </ title >
<!-- Bootstrap Core CSS -->
< link href = "vendor/bootstrap/css/bootstrap.min.css" rel = "stylesheet" >
<!-- MetisMenu CSS -->
< link href = "vendor/metisMenu/metisMenu.min.css" rel = "stylesheet" >
<!-- Timeline CSS -->
< link href = "dist/css/timeline.css" rel = "stylesheet" >
<!-- Custom CSS -->
< link href = "dist/css/sb-admin-2.min.css" rel = "stylesheet" >
<!-- Morris Charts CSS -->
< link href = "vendor/morrisjs/morris.css" rel = "stylesheet" >
<!-- Custom Fonts -->
< link href = "vendor/font-awesome/css/font-awesome.min.css" rel = "stylesheet" type = "text/css" >
<!-- Custom CSS -->
< link href = " <?php echo $theme_url ; ?> " title = "main" rel = "stylesheet" >
< link rel = "shortcut icon" type = "image/png" href = "../img/favicon.png" >
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!-- [if lt IE 9]>
< script src = "https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js" > < / script >
< script src = "https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js" > < / script >
<![endif]-->
< / head >
< body >
< div id = "wrapper" >
<!-- Navigation -->
< nav class = "navbar navbar-default navbar-static-top" role = "navigation" style = "margin-bottom: 0" >
< div class = "navbar-header" >
< button type = "button" class = "navbar-toggle" data-toggle = "collapse" data-target = ".navbar-collapse" >
< span class = "sr-only" > Toggle navigation< / span >
< span class = "icon-bar" > < / span >
< span class = "icon-bar" > < / span >
< span class = "icon-bar" > < / span >
< / button >
< a class = "navbar-brand" href = "index.php" style = "font-family: Arial;font-size: 20px; color: #609aac" > <?php echo _ ( "LabyrinthAP Lokinet Access Point" ); ?> v<?php echo RASPI_VERSION ; ?> </ a >
< / div >
<!-- /.navbar - header -->
<!-- Navigation -->
< div class = "navbar-default sidebar" role = "navigation" >
< div class = "sidebar-nav navbar-collapse" >
< ul class = "nav" id = "side-menu" >
<?php if ( RASPI_LOKINET_ENABLED ) : ?>
< li >
< a href = "index.php?page=lokinet_conf" >< i class = "fa fa-eye-slash fa-fw" ></ i > <?php echo _ ( "Configure Lokinet" ); ?> </ a >
< / li >
<?php endif ; ?>
< li >
< a href = "index.php?page=wlan0_info" >< i class = "fa fa-dashboard fa-fw" ></ i > <?php echo _ ( "Dashboard" ); ?> </ a >
< / li >
<?php if ( RASPI_WIFICLIENT_ENABLED ) : ?>
< li >
< a href = "index.php?page=wpa_conf" >< i class = "fa fa-signal fa-fw" ></ i > <?php echo _ ( "Configure WiFi client" ); ?> </ a >
< / li >
<?php endif ; ?>
<?php if ( RASPI_HOTSPOT_ENABLED ) : ?>
< li >
< a href = "index.php?page=hostapd_conf" >< i class = "fa fa-dot-circle-o fa-fw" ></ i > <?php echo _ ( "Configure hotspot" ); ?> </ a >
< / li >
<?php endif ; ?>
<?php if ( RASPI_NETWORK_ENABLED ) : ?>
< li >
< a href = "index.php?page=network_conf" >< i class = "fa fa-sitemap fa-fw" ></ i > <?php echo _ ( "Configure networking" ); ?> </ a >
< / li >
<?php endif ; ?>
<?php if ( RASPI_DHCP_ENABLED ) : ?>
< li >
< a href = "index.php?page=dhcpd_conf" >< i class = "fa fa-exchange fa-fw" ></ i > <?php echo _ ( "Configure DHCP Server" ); ?> </ a >
< / li >
<?php endif ; ?>
<?php if ( RASPI_CONFAUTH_ENABLED ) : ?>
< li >
< a href = "index.php?page=auth_conf" >< i class = "fa fa-lock fa-fw" ></ i > <?php echo _ ( "Configure Auth" ); ?> </ a >
< / li >
<?php endif ; ?>
<?php if ( RASPI_CHANGETHEME_ENABLED ) : ?>
< li >
< a href = "index.php?page=theme_conf" >< i class = "fa fa-wrench fa-fw" ></ i > <?php echo _ ( "Change Theme" ); ?> </ a >
< / li >
<?php endif ; ?>
<?php if ( RASPI_VNSTAT_ENABLED ) : ?>
< li >
< a href = "index.php?page=data_use" >< i class = "fa fa-bar-chart fa-fw" ></ i > <?php echo _ ( "Data usage" ); ?> </ a >
< / li >
<?php endif ; ?>
< li >
< a href = "index.php?page=system_info" >< i class = "fa fa-cube fa-fw" ></ i > <?php echo _ ( "System" ); ?> </ a >
< / li >
< / div >
< / div >
< / ul >
< / div > <!-- /.navbar - collapse -->
< / div > <!-- /.navbar - default -->
< / nav >
< div id = "page-wrapper" >
<!-- Page Heading -->
< div class = "row" >
< div class = "col-lg-12" >
< h1 class = "page-header" >
< img class = "logo" src = "img/raspAP-logo64px.png" width = "64" height = "64" > LabyrinthAP
< / h1 >
< / div >
< / div > <!-- /.row -->
<?php
$extraFooterScripts = array();
// handle page actions
switch( $page ) {
case "wlan0_info":
DisplayDashboard();
break;
case "dhcpd_conf":
DisplayDHCPConfig();
break;
case "wpa_conf":
DisplayWPAConfig();
break;
case "network_conf":
DisplayNetworkingConfig();
break;
case "hostapd_conf":
DisplayHostAPDConfig();
break;
case "lokinet_conf":
DisplayLokinetConfig();
break;
case "auth_conf":
DisplayAuthConfig($config['admin_user'], $config['admin_pass']);
break;
case "save_hostapd_conf":
ActivateLokinetConfig();
break;
case "theme_conf":
DisplayThemeConfig();
break;
case "data_use":
DisplayDataUsage($extraFooterScripts);
break;
case "system_info":
DisplaySystem();
break;
default:
DisplayLokinetConfig();
}
?>
< / div > <!-- /#page - wrapper -->
< / div > <!-- /#wrapper -->
<!-- RaspAP JavaScript -->
< script src = "dist/js/functions.js" > < / script >
<!-- jQuery -->
< script src = "vendor/jquery/jquery.min.js" > < / script >
<!-- Bootstrap Core JavaScript -->
< script src = "vendor/bootstrap/js/bootstrap.min.js" > < / script >
<!-- Metis Menu Plugin JavaScript -->
< script src = "vendor/metisMenu/metisMenu.min.js" > < / script >
<!-- Custom Theme JavaScript -->
< script src = "dist/js/sb-admin-2.js" > < / script >
<!-- Custom RaspAP JS -->
< script src = "js/custom.js" > < / script >
<?php
// Load non default JS/ECMAScript in footer.
foreach ($extraFooterScripts as $script) {
echo ' < script type = "text/javascript" src = "' , $script['src'] , '" ' ;
if ($script['defer']) {
echo ' defer="defer"';
}
// if ($script['async']) { echo ( echo ' defer="async"'; ), intrigity=, nonce= etc. etc.
echo '>< / script > ' , PHP_EOL;
}
?>
< / body >
< / html >