* remove unofficial 'WPA2' enc. token for better compatibility with certain QR code reader, still 'WPA', 'WEP' and 'nopass' are supported * add WEP key slot support (not really needed, but it's still supported by LuCI wireless) * correct escape single quotes and other special chars in SSID & passwords * code cleanup Signed-off-by: Dirk Brenken <dev@brenken.org>
62 lines
1.9 KiB
HTML
62 lines
1.9 KiB
HTML
<%#
|
|
Copyright 2018 Dirk Brenken (dev@brenken.org)
|
|
This is free software, licensed under the Apache License, Version 2.0
|
|
-%>
|
|
|
|
<%+header%>
|
|
|
|
<div class="cbi-map">
|
|
<div class="cbi-map-descr">
|
|
<%=translate("Here you'll find the QR codes from all of your configured Access Points. It allows you to connect your Android or iOS devices to your router's WiFi using the QR code shown below.")%>
|
|
</div>
|
|
<%-
|
|
local write = io.write
|
|
local uci = require("luci.model.uci").cursor()
|
|
|
|
uci:foreach("wireless", "wifi-iface", function(s)
|
|
local device = s.device or ""
|
|
local mode = s.mode or ""
|
|
local ssid = s.ssid or ""
|
|
local enc = s.encryption or ""
|
|
local key = s.key or ""
|
|
local hidden = s.hidden or "false"
|
|
local disabled = s.disabled or ""
|
|
local wep_slots = {s.key1 or "", s.key2 or "", s.key3 or "", s.key4 or ""}
|
|
|
|
if device and mode == "ap" and disabled ~= "1" then
|
|
if string.match(enc, '^psk') then
|
|
enc = "WPA"
|
|
elseif string.match(enc, '^wep') then
|
|
enc = "WEP"
|
|
if tonumber(key) then
|
|
key = wep_slots[tonumber(key)]
|
|
end
|
|
elseif enc == "none" then
|
|
enc = "nopass"
|
|
key = "nokey"
|
|
else
|
|
enc = ""
|
|
end
|
|
if hidden == "1" then
|
|
hidden = "true"
|
|
end
|
|
if ssid and enc and key then
|
|
local e_ssid = string.gsub(ssid,"[\"\\';:, ]",[[\\\%1]])
|
|
local e_key = string.gsub(key,"[\"\\';:, ]",[[\\\%1]])
|
|
local qrcode = ""
|
|
if nixio.fs.access("/usr/bin/qrencode") then
|
|
qrcode = luci.sys.exec("/usr/bin/qrencode -I -t SVG -8 -o - 'WIFI:S:\"'" .. e_ssid .. "'\";T:'" .. enc .. "';P:\"'" .. e_key .. "'\";H:'" .. hidden .. "';'")
|
|
end
|
|
-%>
|
|
<fieldset class="cbi-section">
|
|
<legend>AP on <%=device%> with SSID "<%=ssid%>"</legend>
|
|
<h3 name="content"><%=qrcode%></h3>
|
|
</fieldset>
|
|
<%-
|
|
end
|
|
end
|
|
end)
|
|
%>
|
|
</div>
|
|
|
|
<%+footer%>
|