From c9c76a136af2c7a1936655e667b9949862dc4842 Mon Sep 17 00:00:00 2001 From: Stan Grishin Date: Thu, 26 Jan 2017 14:54:48 -0800 Subject: [PATCH] luci-app-vpnbypass: initial commit of companion app to vpnbypass package Signed-off-by: Stan Grishin --- applications/luci-app-vpnbypass/Makefile | 44 +++++++++++++++++++ .../luasrc/controller/vpnbypass.lua | 8 ++++ .../luasrc/model/cbi/vpnbypass.lua | 35 +++++++++++++++ .../root/etc/uci-defaults/40_luci-vpnbypass | 11 +++++ 4 files changed, 98 insertions(+) create mode 100644 applications/luci-app-vpnbypass/Makefile create mode 100644 applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua create mode 100644 applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua create mode 100644 applications/luci-app-vpnbypass/root/etc/uci-defaults/40_luci-vpnbypass diff --git a/applications/luci-app-vpnbypass/Makefile b/applications/luci-app-vpnbypass/Makefile new file mode 100644 index 000000000..58b3d30d9 --- /dev/null +++ b/applications/luci-app-vpnbypass/Makefile @@ -0,0 +1,44 @@ +# Copyright (c) 2017 Stan Grishin (stangri@melmac.net) +# This is free software, licensed under the GNU General Public License v3. + +include $(TOPDIR)/rules.mk + +PKG_NAME:=luci-app-vpnbypass +PKG_VERSION:=1.0.0 +PKG_RELEASE:=3 +PKG_LICENSE:=GPL-3.0+ +PKG_MAINTAINER:=Stan Grishin +PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) + +include $(INCLUDE_DIR)/package.mk + +define Package/luci-app-vpnbypass + SECTION:=luci + CATEGORY:=LuCI + SUBMENU:=3. Applications + TITLE:=VPN Bypass Web UI + DEPENDS:=+luci-mod-admin-full +vpnbypass + PKGARCH:=all +endef + +define Package/luci-app-vpnbypass/description + This package will install VPN Bypass Web UI. +endef + +define Build/Prepare +endef + +define Build/Configure +endef + +define Build/Compile +endef + +define Package/luci-app-vpnbypass/install + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller/ + $(INSTALL_BIN) ./luasrc/controller/vpnbypass.lua $(1)/usr/lib/lua/luci/controller/vpnbypass.lua + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/ + $(INSTALL_BIN) ./luasrc/model/cbi/vpnbypass.lua $(1)/usr/lib/lua/luci/model/cbi/vpnbypass.lua +endef + +$(eval $(call BuildPackage,luci-app-vpnbypass)) \ No newline at end of file diff --git a/applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua b/applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua new file mode 100644 index 000000000..6becd6791 --- /dev/null +++ b/applications/luci-app-vpnbypass/luasrc/controller/vpnbypass.lua @@ -0,0 +1,8 @@ +module("luci.controller.vpnbypass", package.seeall) +function index() + if not nixio.fs.access("/etc/config/vpnbypass") then + return + end + entry({"admin", "services", "vpnbypass"}, cbi("vpnbypass"), translate("VPN Bypass"), 1) +end + diff --git a/applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua b/applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua new file mode 100644 index 000000000..195794838 --- /dev/null +++ b/applications/luci-app-vpnbypass/luasrc/model/cbi/vpnbypass.lua @@ -0,0 +1,35 @@ +m = Map("vpnbypass", translate("VPN Bypass Settings"), translate("Configuration of VPN Bypass Settings")) +s = m:section(NamedSection, "config", "vpnbypass") + +-- General options +o1 = s:option(Flag, "enabled", translate("Enable VPN Bypass")) +o1.rmempty = false +o1.default = 0 + +-- Local Ports +p1 = s:option(DynamicList, "localport", translate("Local Ports to Bypass"), translate("Local ports to trigger VPN Bypass")) +p1.addremove = true +p1.optional = true + +-- Remote Ports +p2 = s:option(DynamicList, "remoteport", translate("Remote Ports to Bypass"), translate("Remote ports to trigger VPN Bypass")) +p2.addremove = true +p2.optional = true + +-- Local Subnets +r1 = s:option(DynamicList, "localsubnet", translate("Local IP Subnets to Bypass"), translate("Local IP ranges with direct internet access (outside of the VPN tunnel)")) +r1.addremove = true +r1.optional = true + +-- Remote Subnets +r2 = s:option(DynamicList, "remotesubnet", translate("Remote IP Subnets to Bypass"), translate("Remote IP ranges which will be accessed directly (outside of the VPN tunnel)")) +r2.addremove = true +r2.optional = true + +-- Domains +d1 = s:option(DynamicList, "domain", translate("Domains to Bypass"), translate("Domains which will be accessed directly (outside of the VPN tunnel)")) +d1.addremove = true +d1.optional = true + +return m + diff --git a/applications/luci-app-vpnbypass/root/etc/uci-defaults/40_luci-vpnbypass b/applications/luci-app-vpnbypass/root/etc/uci-defaults/40_luci-vpnbypass new file mode 100644 index 000000000..9455701a0 --- /dev/null +++ b/applications/luci-app-vpnbypass/root/etc/uci-defaults/40_luci-vpnbypass @@ -0,0 +1,11 @@ +#!/bin/sh +uci -q batch <<-EOF >/dev/null + delete ucitrack.@vpnbypass[-1] + add ucitrack vpnbypass + set ucitrack.@vpnbypass[-1].init=vpnbypass + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 + -- 2.25.1