summaryrefslogtreecommitdiffhomepage
path: root/modules
diff options
context:
space:
mode:
authorPaul Donald <newtwen@gmail.com>2024-02-16 01:49:29 +0100
committerPaul Donald <newtwen@gmail.com>2024-02-17 17:29:19 +0100
commitd9e7be1b435c9dc98829b10d153e5ff83ee4c213 (patch)
tree3613bf4fbe709bb54c3c8b69ae507b432609cedd /modules
parent29772a6997e82673678ba99425f2c56bb1fbad7e (diff)
luci-mod-network: wireless: RADIUS Access/Accounting-Request attrs
See following for more detail: https://w1.fi/cgit/hostap/commit/?id=af35e7af7f8bb1ca9f0905b4074fb56a264aa12b Signed-off-by: Paul Donald <newtwen@gmail.com>
Diffstat (limited to 'modules')
-rw-r--r--modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js b/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js
index 84e0e407a2..3896ed8172 100644
--- a/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js
+++ b/modules/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js
@@ -1434,6 +1434,34 @@ return view.extend({
o.password = true;
/* extra RADIUS settings start */
+ var attr_validate = function(section_id, value) {
+ if (!value)
+ return true;
+
+ if (!/^[0-9]+(:s:.+|:d:[0-9]+|:x:([0-9a-zA-Z]{2})+)?$/.test(value) )
+ return _('Must be in %s format.').format('<attr_id>[:<syntax:value>]');
+
+ return true;
+ };
+
+ var req_attr_syntax = _('Format:') + '<code>&lt;attr_id&gt;[:&lt;syntax:value&gt;]</code>' + '<br />' +
+ '<code>syntax: s = %s; '.format(_('string (UTF-8)')) + 'd = %s; '.format(_('integer')) + 'x = %s</code>'.format(_('octet string'))
+
+ /* https://w1.fi/cgit/hostap/commit/?id=af35e7af7f8bb1ca9f0905b4074fb56a264aa12b */
+ o = ss.taboption('encryption', form.DynamicList, 'radius_auth_req_attr', _('RADIUS Access-Request attributes'),
+ _('Attributes to add/replace in each request.') + '<br />' + req_attr_syntax );
+ add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['wpa', 'wpa2', 'wpa3', 'wpa3-mixed'] });
+ o.rmempty = true;
+ o.validate = attr_validate;
+ o.placeholder = '126:s:Operator';
+
+ o = ss.taboption('encryption', form.DynamicList, 'radius_acct_req_attr', _('RADIUS Accounting-Request attributes'),
+ _('Attributes to add/replace in each request.') + '<br />' + req_attr_syntax );
+ add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['wpa', 'wpa2', 'wpa3', 'wpa3-mixed'] });
+ o.rmempty = true;
+ o.validate = attr_validate;
+ o.placeholder = '77:x:74657374696e67';
+
o = ss.taboption('encryption', form.ListValue, 'dynamic_vlan', _('RADIUS Dynamic VLAN Assignment'), _('Required: Rejects auth if RADIUS server does not provide appropriate VLAN attributes.'));
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['wpa', 'wpa2', 'wpa3', 'wpa3-mixed'] });
o.value('0', _('Disabled'));
@@ -1462,6 +1490,7 @@ return view.extend({
o = ss.taboption('encryption', form.Value, 'vlan_bridge', _('RADIUS VLAN Bridge Naming Scheme'), _('E.g. <code>br-vlan</code> or <code>brvlan</code>.'));
add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['wpa', 'wpa2', 'wpa3', 'wpa3-mixed'] });
o.rmempty = true;
+
/* extra RADIUS settings end */
o = ss.taboption('encryption', form.Value, 'dae_client', _('DAE-Client'), _('Dynamic Authorization Extension client.'));