web-private-ap: init
This commit is contained in:
parent
185d57f458
commit
e47f42d811
12
package/gluon-web-private-ap/Makefile
Normal file
12
package/gluon-web-private-ap/Makefile
Normal file
@ -0,0 +1,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=gluon-web-private-ap
|
||||
|
||||
include ../gluon.mk
|
||||
|
||||
define Package/gluon-web-private-ap
|
||||
DEPENDS:=+gluon-web-admin +gluon-private-ap
|
||||
TITLE:=UI for activating a private AP
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackageGluon,gluon-web-private-ap))
|
59
package/gluon-web-private-ap/i18n/de.po
Normal file
59
package/gluon-web-private-ap/i18n/de.po
Normal file
@ -0,0 +1,59 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2015-05-04 02:25+0200\n"
|
||||
"Last-Translator: <mschiffer@universe-factory.net>\n"
|
||||
"Language-Team: German\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "8-63 characters"
|
||||
msgstr "8-63 Zeichen"
|
||||
|
||||
msgid "Disabled"
|
||||
msgstr "Deaktiviert"
|
||||
|
||||
msgid "Enabled"
|
||||
msgstr "Aktiviert"
|
||||
|
||||
msgid "Encryption"
|
||||
msgstr "Verschlüsselung"
|
||||
|
||||
msgid "Key"
|
||||
msgstr "Schlüssel"
|
||||
|
||||
msgid "Management Frame Protection"
|
||||
msgstr ""
|
||||
|
||||
msgid "Name (SSID)"
|
||||
msgstr "Name (SSID)"
|
||||
|
||||
msgid "Optional"
|
||||
msgstr ""
|
||||
|
||||
msgid "Private WLAN"
|
||||
msgstr "Privates WLAN"
|
||||
|
||||
msgid "Required"
|
||||
msgstr "Aktiviert"
|
||||
|
||||
msgid "WPA2"
|
||||
msgstr ""
|
||||
|
||||
msgid "WPA2 / WPA3"
|
||||
msgstr ""
|
||||
|
||||
msgid "WPA3"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Your node can additionally offer a private client access point "
|
||||
"which allows you to use the mesh like regular private wifi "
|
||||
"with your own network, LAN addresses, password, etc."
|
||||
msgstr ""
|
||||
"Dein Knoten kann zusätzlich einen privaten Klient Zugangspunkt anbieten. "
|
||||
"Das erlaubt dir das mesh wie ein normales Privat-WLAN zu verwenden, "
|
||||
"das ein eigenes Netz, eigene LAN-Addressesn, ein eigens Passwort, etc hat."
|
50
package/gluon-web-private-ap/i18n/fr.po
Normal file
50
package/gluon-web-private-ap/i18n/fr.po
Normal file
@ -0,0 +1,50 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"PO-Revision-Date: 2015-08-19 23:30+0100\n"
|
||||
"Last-Translator:Tobias Bernot <tqbs@airmail.cc>\n"
|
||||
"Language-Team: French\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
msgid "8-63 characters"
|
||||
msgstr "8-63 charactères"
|
||||
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enabled"
|
||||
msgstr "Activé"
|
||||
|
||||
msgid "Encryption"
|
||||
msgstr ""
|
||||
|
||||
msgid "Key"
|
||||
msgstr "Clé"
|
||||
|
||||
msgid "Management Frame Protection"
|
||||
msgstr ""
|
||||
|
||||
msgid "Name (SSID)"
|
||||
msgstr "Nom (SSID)"
|
||||
|
||||
msgid "Optional"
|
||||
msgstr ""
|
||||
|
||||
msgid "Private WLAN"
|
||||
msgstr "Wi-Fi privé"
|
||||
|
||||
msgid "Required"
|
||||
msgstr ""
|
||||
|
||||
msgid "WPA2"
|
||||
msgstr ""
|
||||
|
||||
msgid "WPA2 / WPA3"
|
||||
msgstr ""
|
||||
|
||||
msgid "WPA3"
|
||||
msgstr ""
|
47
package/gluon-web-private-ap/i18n/gluon-web-private-ap.pot
Normal file
47
package/gluon-web-private-ap/i18n/gluon-web-private-ap.pot
Normal file
@ -0,0 +1,47 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
msgid "8-63 characters"
|
||||
msgstr ""
|
||||
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
msgid "Encryption"
|
||||
msgstr ""
|
||||
|
||||
msgid "Key"
|
||||
msgstr ""
|
||||
|
||||
msgid "Management Frame Protection"
|
||||
msgstr ""
|
||||
|
||||
msgid "Name (SSID)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Optional"
|
||||
msgstr ""
|
||||
|
||||
msgid "Private WLAN"
|
||||
msgstr ""
|
||||
|
||||
msgid "Required"
|
||||
msgstr ""
|
||||
|
||||
msgid "WPA2"
|
||||
msgstr ""
|
||||
|
||||
msgid "WPA2 / WPA3"
|
||||
msgstr ""
|
||||
|
||||
msgid "WPA3"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Your node can additionally offer a private client access point "
|
||||
"which allows you to use the mesh like regular private wifi "
|
||||
"with your own network, LAN addresses, password, etc."
|
||||
msgstr ""
|
@ -0,0 +1,8 @@
|
||||
local uci = require("simple-uci").cursor()
|
||||
local wireless = require 'gluon.wireless'
|
||||
|
||||
package 'gluon-web-private-ap'
|
||||
|
||||
if wireless.device_uses_wlan(uci) then
|
||||
entry({"admin", "privatewifi"}, model("admin/privateap"), _("Private AP"), 30)
|
||||
end
|
@ -0,0 +1,84 @@
|
||||
local uci = require("simple-uci").cursor()
|
||||
local wireless = require 'gluon.wireless'
|
||||
|
||||
-- where to read the configuration from
|
||||
local primary_iface = 'ap_radio0'
|
||||
|
||||
local f = Form(translate("Private AP"))
|
||||
|
||||
local s = f:section(Section, nil, translate(
|
||||
'Your node can additionally offer a private client access point '
|
||||
.. 'which allows you to use the mesh like regular private wifi '
|
||||
.. 'with your own network, LAN addresses, password, etc.'
|
||||
))
|
||||
|
||||
local enabled = s:option(Flag, "enabled", translate("Enabled"))
|
||||
enabled.default = uci:get('wireless', primary_iface) and not uci:get_bool('wireless', primary_iface, "disabled")
|
||||
|
||||
local ssid = s:option(Value, "ssid", translate("Name (SSID)"))
|
||||
ssid:depends(enabled, true)
|
||||
ssid.datatype = "maxlength(32)"
|
||||
ssid.default = uci:get('wireless', primary_iface, "ssid")
|
||||
|
||||
local key = s:option(Value, "key", translate("Key"), translate("8-63 characters"))
|
||||
key:depends(enabled, true)
|
||||
key.datatype = "wpakey"
|
||||
key.default = uci:get('wireless', primary_iface, "key")
|
||||
|
||||
local encryption = s:option(ListValue, "encryption", translate("Encryption"))
|
||||
encryption:depends(enabled, true)
|
||||
encryption:value("psk2", translate("WPA2"))
|
||||
if wireless.device_supports_wpa3() then
|
||||
encryption:value("psk3-mixed", translate("WPA2 / WPA3"))
|
||||
encryption:value("psk3", translate("WPA3"))
|
||||
end
|
||||
encryption.default = uci:get('wireless', primary_iface, 'encryption') or "psk2"
|
||||
|
||||
local mfp = s:option(ListValue, "mfp", translate("Management Frame Protection"))
|
||||
mfp:depends(enabled, true)
|
||||
mfp:value("0", translate("Disabled"))
|
||||
if wireless.device_supports_mfp(uci) then
|
||||
mfp:value("1", translate("Optional"))
|
||||
mfp:value("2", translate("Required"))
|
||||
end
|
||||
mfp.default = uci:get('wireless', primary_iface, 'ieee80211w') or "0"
|
||||
|
||||
-- TODO: ipv4 when prefix4() set? or always? allow custom cidr
|
||||
-- TODO: allow mesh (regular meshing) on private net?
|
||||
|
||||
function f:write()
|
||||
wireless.foreach_radio(uci, function(radio, index)
|
||||
local radio_name = radio['.name']
|
||||
local suffix = radio_name:match('^radio(%d+)$')
|
||||
local name = "ap_" .. radio_name
|
||||
|
||||
if enabled.data then
|
||||
local macaddr = wireless.get_wlan_mac(uci, radio, index, 5)
|
||||
|
||||
uci:section('wireless', 'wifi-iface', name, {
|
||||
device = radio_name,
|
||||
network = 'ap',
|
||||
mode = 'ap',
|
||||
encryption = encryption.data,
|
||||
ssid = ssid.data,
|
||||
key = key.data,
|
||||
macaddr = macaddr,
|
||||
ifname = suffix and 'ap' .. suffix,
|
||||
disabled = false,
|
||||
})
|
||||
|
||||
-- hostapd-mini won't start in case 802.11w is configured
|
||||
if wireless.device_supports_mfp(uci) then
|
||||
uci:set('wireless', name, 'ieee80211w', mfp.data)
|
||||
else
|
||||
uci:delete('wireless', name, 'ieee80211w')
|
||||
end
|
||||
else
|
||||
uci:set('wireless', name, "disabled", true)
|
||||
end
|
||||
end)
|
||||
|
||||
uci:commit('wireless')
|
||||
end
|
||||
|
||||
return f
|
Loading…
Reference in New Issue
Block a user