Development
This commit is contained in:
parent
43c4cf380d
commit
f011594b04
10 changed files with 163 additions and 46 deletions
|
|
@ -101,20 +101,29 @@ def auth_mode_save():
|
|||
after['default_session_seconds'] = dur_n * mult if dur_n > 0 else 0
|
||||
except (ValueError, TypeError):
|
||||
after['default_session_seconds'] = 0
|
||||
try:
|
||||
exp_n = int(request.form.get('default_expiration_value', '0').strip() or '0')
|
||||
exp_unit = request.form.get('default_expiration_unit', 'hours')
|
||||
mult = {'hours': 3600, 'days': 86400}.get(exp_unit, 3600)
|
||||
after['default_expiration_seconds'] = exp_n * mult if exp_n > 0 else 0
|
||||
except (ValueError, TypeError):
|
||||
after['default_expiration_seconds'] = 0
|
||||
elif auth_mode == 'eap_certificate':
|
||||
after['include_length'] = include_length
|
||||
after['mab_first'] = mab_first
|
||||
after.pop('eap_protocol', None)
|
||||
after.pop('tunneled_reply', None)
|
||||
after.pop('inner_protocol', None)
|
||||
after.pop('default_session_seconds', None)
|
||||
after.pop('eap_protocol', None)
|
||||
after.pop('tunneled_reply', None)
|
||||
after.pop('inner_protocol', None)
|
||||
after.pop('default_session_seconds', None)
|
||||
after.pop('default_expiration_seconds', None)
|
||||
else: # mab
|
||||
after.pop('eap_protocol', None)
|
||||
after.pop('tunneled_reply', None)
|
||||
after.pop('inner_protocol', None)
|
||||
after.pop('include_length', None)
|
||||
after.pop('mab_first', None)
|
||||
after.pop('default_session_seconds', None)
|
||||
after.pop('eap_protocol', None)
|
||||
after.pop('tunneled_reply', None)
|
||||
after.pop('inner_protocol', None)
|
||||
after.pop('include_length', None)
|
||||
after.pop('mab_first', None)
|
||||
after.pop('default_session_seconds', None)
|
||||
after.pop('default_expiration_seconds', None)
|
||||
cfg.setdefault('radius', {})['options'] = after
|
||||
|
||||
changes = config_utils.diff_fields(before, after)
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@
|
|||
"input_type": "number",
|
||||
"min": 0,
|
||||
"value": "%RADIUS_DEFAULT_SESSION_VALUE%",
|
||||
"hint": "How long a client session lasts before reauthentication is required. 0 = no expiration."
|
||||
"hint": "How long a client session lasts before reauthentication is required. 0 = no session limit."
|
||||
},
|
||||
{
|
||||
"type": "field",
|
||||
|
|
@ -240,6 +240,32 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "field_row",
|
||||
"cols": 2,
|
||||
"items": [
|
||||
{
|
||||
"type": "field",
|
||||
"label": "Default Expiration Duration",
|
||||
"name": "default_expiration_value",
|
||||
"input_type": "number",
|
||||
"min": 0,
|
||||
"value": "%RADIUS_DEFAULT_EXPIRATION_VALUE%",
|
||||
"hint": "How long after creation an account is valid before it permanently expires. 0 = never expires."
|
||||
},
|
||||
{
|
||||
"type": "field",
|
||||
"label": "Unit",
|
||||
"name": "default_expiration_unit",
|
||||
"input_type": "select",
|
||||
"value": "%RADIUS_DEFAULT_EXPIRATION_UNIT%",
|
||||
"options": [
|
||||
{"value": "hours", "label": "Hours"},
|
||||
{"value": "days", "label": "Days"}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "raw_html",
|
||||
"html": "</div>"
|
||||
|
|
|
|||
|
|
@ -138,6 +138,17 @@ def collect_tokens(cfg):
|
|||
tokens['RADIUS_DEFAULT_SESSION_VALUE'] = '0'
|
||||
tokens['RADIUS_DEFAULT_SESSION_UNIT'] = 'hours'
|
||||
|
||||
exps = fr_opts.get('default_expiration_seconds', 0) or 0
|
||||
if exps >= 86400 and exps % 86400 == 0:
|
||||
tokens['RADIUS_DEFAULT_EXPIRATION_VALUE'] = str(exps // 86400)
|
||||
tokens['RADIUS_DEFAULT_EXPIRATION_UNIT'] = 'days'
|
||||
elif exps > 0:
|
||||
tokens['RADIUS_DEFAULT_EXPIRATION_VALUE'] = str(max(1, round(exps / 3600)))
|
||||
tokens['RADIUS_DEFAULT_EXPIRATION_UNIT'] = 'hours'
|
||||
else:
|
||||
tokens['RADIUS_DEFAULT_EXPIRATION_VALUE'] = '0'
|
||||
tokens['RADIUS_DEFAULT_EXPIRATION_UNIT'] = 'hours'
|
||||
|
||||
vlans = cfg.get('vlans', [])
|
||||
default_vlan = next((v['name'] for v in vlans if v.get('radius_default') is True), '')
|
||||
vlan_options = [{'value': '', 'label': 'None (reject unknown devices)'}]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue