mirror of
				https://github.com/billz/raspap-webgui.git
				synced 2025-03-01 10:31:47 +00:00 
			
		
		
		
	WIP
This commit is contained in:
		
							
								
								
									
										5
									
								
								config/blocklists.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								config/blocklists.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
{
 | 
			
		||||
  "notracking/hosts-blocklist": [
 | 
			
		||||
    "notracking-master"
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
@@ -30,6 +30,7 @@ define('RASPI_WIFICLIENT_ENABLED', true);
 | 
			
		||||
define('RASPI_HOTSPOT_ENABLED', true);
 | 
			
		||||
define('RASPI_NETWORK_ENABLED', true);
 | 
			
		||||
define('RASPI_DHCP_ENABLED', true);
 | 
			
		||||
define('RASPI_ADBLOCK_ENABLED', true);
 | 
			
		||||
define('RASPI_OPENVPN_ENABLED', false);
 | 
			
		||||
define('RASPI_TORPROXY_ENABLED', false);
 | 
			
		||||
define('RASPI_CONFAUTH_ENABLED', true);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										35
									
								
								includes/adblock.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								includes/adblock.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
require_once 'includes/status_messages.php';
 | 
			
		||||
require_once 'app/lib/system.php';
 | 
			
		||||
require_once 'config.php';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 *
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
function DisplayAdBlockConfig()
 | 
			
		||||
{
 | 
			
		||||
    $status = new StatusMessages();
 | 
			
		||||
    $system = new System();
 | 
			
		||||
 | 
			
		||||
    exec('pidof dnsmasq | wc -l', $dnsmasq);
 | 
			
		||||
    $dnsmasq_state = ($dnsmasq[0] > 0);
 | 
			
		||||
    $serviceStatus = $dnsmasq_state ? "up" : "down";
 | 
			
		||||
    
 | 
			
		||||
    echo renderTemplate(
 | 
			
		||||
        "adblock", compact(
 | 
			
		||||
            "status",
 | 
			
		||||
            "serviceStatus"
 | 
			
		||||
        )
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * BZ: todo
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
function SaveAdBlockConfig()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -31,6 +31,7 @@ $defaults = [
 | 
			
		||||
  'RASPI_HOTSPOT_ENABLED' => true,
 | 
			
		||||
  'RASPI_NETWORK_ENABLED' => true,
 | 
			
		||||
  'RASPI_DHCP_ENABLED' => true,
 | 
			
		||||
  'RASPI_ADBLOCK_ENABLED' => true,
 | 
			
		||||
  'RASPI_OPENVPN_ENABLED' => false,
 | 
			
		||||
  'RASPI_TORPROXY_ENABLED' => false,
 | 
			
		||||
  'RASPI_CONFAUTH_ENABLED' => true,
 | 
			
		||||
 
 | 
			
		||||
@@ -352,6 +352,12 @@ function dnsServers()
 | 
			
		||||
    return (array) $data;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function blocklistProviders()
 | 
			
		||||
{
 | 
			
		||||
    $data = json_decode(file_get_contents("./config/blocklists.json"));
 | 
			
		||||
    return (array) $data;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function optionsForSelect($options)
 | 
			
		||||
{
 | 
			
		||||
    $html = "";
 | 
			
		||||
 
 | 
			
		||||
@@ -31,6 +31,7 @@ require_once 'includes/authenticate.php';
 | 
			
		||||
require_once 'includes/admin.php';
 | 
			
		||||
require_once 'includes/dhcp.php';
 | 
			
		||||
require_once 'includes/hostapd.php';
 | 
			
		||||
require_once 'includes/adblock.php';
 | 
			
		||||
require_once 'includes/system.php';
 | 
			
		||||
require_once 'includes/sysstats.php';
 | 
			
		||||
require_once 'includes/configure_client.php';
 | 
			
		||||
@@ -137,6 +138,11 @@ $bridgedEnabled = $arrHostapdConf['BridgedEnable'];
 | 
			
		||||
          <?php if (RASPI_DHCP_ENABLED && !$bridgedEnabled) : ?>
 | 
			
		||||
        <li class="nav-item">
 | 
			
		||||
          <a class="nav-link" href="index.php?page=dhcpd_conf"><i class="fas fa-exchange-alt fa-fw mr-2"></i><span class="nav-label"><?php echo _("DHCP Server"); ?></a>
 | 
			
		||||
        </li>
 | 
			
		||||
          <?php endif; ?>
 | 
			
		||||
          <?php if (RASPI_ADBLOCK_ENABLED) : ?>
 | 
			
		||||
        <li class="nav-item">
 | 
			
		||||
           <a class="nav-link" href="index.php?page=adblock_conf"><i class="far fa-hand-paper fa-fw mr-2"></i><span class="nav-label"><?php echo _("Ad Blocking"); ?></a>
 | 
			
		||||
        </li>
 | 
			
		||||
          <?php endif; ?>
 | 
			
		||||
          <?php if (RASPI_NETWORK_ENABLED) : ?>
 | 
			
		||||
@@ -239,6 +245,9 @@ $bridgedEnabled = $arrHostapdConf['BridgedEnable'];
 | 
			
		||||
        case "hostapd_conf":
 | 
			
		||||
            DisplayHostAPDConfig();
 | 
			
		||||
            break;
 | 
			
		||||
        case "adblock_conf":
 | 
			
		||||
            DisplayAdBlockConfig();
 | 
			
		||||
            break;
 | 
			
		||||
        case "openvpn_conf":
 | 
			
		||||
            DisplayOpenVPNConfig();
 | 
			
		||||
            break;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										90
									
								
								templates/adblock.php
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										90
									
								
								templates/adblock.php
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,90 @@
 | 
			
		||||
  <div class="row">
 | 
			
		||||
    <div class="col-lg-12">
 | 
			
		||||
      <div class="card">
 | 
			
		||||
        <div class="card-header">
 | 
			
		||||
          <div class="row">
 | 
			
		||||
            <div class="col">
 | 
			
		||||
              <i class="far fa-hand-paper mr-2"></i><?php echo _("Ad Blocking"); ?>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div class="col">
 | 
			
		||||
              <button class="btn btn-light btn-icon-split btn-sm service-status float-right">
 | 
			
		||||
                <span class="icon text-gray-600"><i class="fas fa-circle service-status-<?php echo $serviceStatus ?>"></i></span>
 | 
			
		||||
                <span class="text service-status">adblock <?php echo _($serviceStatus) ?></span>
 | 
			
		||||
              </button>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div><!-- /.row -->
 | 
			
		||||
        </div><!-- /.card-header -->
 | 
			
		||||
        <div class="card-body">
 | 
			
		||||
        <?php $status->showMessages(); ?>
 | 
			
		||||
          <form role="form" action="?page=adblock_conf" enctype="multipart/form-data" method="POST">
 | 
			
		||||
            <?php echo CSRFTokenFieldTag() ?>
 | 
			
		||||
            <!-- Nav tabs -->
 | 
			
		||||
            <ul class="nav nav-tabs">
 | 
			
		||||
                <li class="nav-item"><a class="nav-link active" id="clienttab" href="#adblocklistsettings" data-toggle="tab"><?php echo _("Blocklist settings"); ?></a></li>
 | 
			
		||||
                <li class="nav-item"><a class="nav-link" id="logoutputtab" href="#adblocklogfileoutput" data-toggle="tab"><?php echo _("Logfile output"); ?></a></li>
 | 
			
		||||
            </ul>
 | 
			
		||||
            <!-- Tab panes -->
 | 
			
		||||
            <div class="tab-content">
 | 
			
		||||
 | 
			
		||||
              <!-- blocklist settings tab -->
 | 
			
		||||
              <div class="tab-pane active" id="adblocklistsettings">
 | 
			
		||||
 | 
			
		||||
                <div class="row">
 | 
			
		||||
                  <div class="col-md-6">
 | 
			
		||||
                    <h4 class="mt-3"><?php echo _("Blocklist settings"); ?></h4>
 | 
			
		||||
 | 
			
		||||
                      <div class="input-group">
 | 
			
		||||
                        <input type="hidden" name="adblock-enable" value="0">
 | 
			
		||||
                        <div class="custom-control custom-switch">
 | 
			
		||||
                          <input class="custom-control-input" id="adblock-enable" type="checkbox" name="adblock-enable" value="1" <?php echo $conf['adblock-enable'] ? ' checked="checked"' : "" ?> aria-describedby="adblock-description">
 | 
			
		||||
                        <label class="custom-control-label" for="adblock-enable"><?php echo _("Enable blocklists") ?></label>
 | 
			
		||||
                      </div>
 | 
			
		||||
                      <p id="adblock-description">
 | 
			
		||||
                        <small><?php echo _("Enable this option if you want RaspAP to <b>block DNS requests for ads, tracking and other virtual garbage</b>. Blocklists are gathered from multiple, actively maintained sources and automatically updated, cleaned, optimized and moderated on a daily basis.") ?></small>
 | 
			
		||||
                        <div class="mb-3">
 | 
			
		||||
                          <small class="text-muted"><?php echo _("This option adds <code>conf-file</code> and <code>addn-hosts</code> to the dnsmasq configuration.") ?></small>
 | 
			
		||||
                        </div>
 | 
			
		||||
                      </p>
 | 
			
		||||
                      </div>
 | 
			
		||||
 | 
			
		||||
                      <div class="row">
 | 
			
		||||
                        <div class="form-group col-md-6">
 | 
			
		||||
                          <select class="custom-select custom-select-sm js-field-preset" data-field-preset-target="#add-dhcp-upstream-server-field">
 | 
			
		||||
                            <option value=""><?php echo _("Choose a blocklist provider") ?></option>
 | 
			
		||||
                            <option disabled="disabled"></option>
 | 
			
		||||
                            <?php echo optionsForSelect(blocklistProviders()) ?>
 | 
			
		||||
                          </select>
 | 
			
		||||
                       </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                  </div>
 | 
			
		||||
                </div><!-- /.row -->
 | 
			
		||||
              </div><!-- /.tab-pane | advanded tab -->
 | 
			
		||||
 | 
			
		||||
              <!-- logging tab -->
 | 
			
		||||
              <div class="tab-pane fade" id="adblocklogfileoutput">
 | 
			
		||||
                <h4 class="mt-3"><?php echo _("Blocklist log"); ?></h4>
 | 
			
		||||
                <div class="row">
 | 
			
		||||
                  <div class="form-group col-md-8">
 | 
			
		||||
                    <?php
 | 
			
		||||
                        echo '<textarea class="logoutput"></textarea>';
 | 
			
		||||
                    ?>
 | 
			
		||||
                  </div>
 | 
			
		||||
                </div>
 | 
			
		||||
              </div>
 | 
			
		||||
              <?php if (!RASPI_MONITOR_ENABLED) : ?>
 | 
			
		||||
                  <input type="submit" class="btn btn-outline btn-primary" name="SaveAdBlockSettings" value="Save settings" />
 | 
			
		||||
                  <?php if ($openvpnstatus[0] == 0) {
 | 
			
		||||
					  echo '<input type="submit" class="btn btn-success" name="StartOpenVPN" value="Start Ad Blocking" />' , PHP_EOL;
 | 
			
		||||
				  } else {
 | 
			
		||||
                    echo '<input type="submit" class="btn btn-warning" name="StopOpenVPN" value="Stop Ad Blocking" />' , PHP_EOL;
 | 
			
		||||
                  }
 | 
			
		||||
                  ?>
 | 
			
		||||
              <?php endif ?>
 | 
			
		||||
              </form>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div><!-- /.card-body -->
 | 
			
		||||
        <div class="card-footer"><?php echo _("Information provided by adblock"); ?></div>
 | 
			
		||||
  </div><!-- /.card -->
 | 
			
		||||
</div><!-- /.col-lg-12 -->
 | 
			
		||||
</div><!-- /.row -->
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user