diff --git a/config/aaa.py b/config/aaa.py index a56a977bad..ddbc31f0bb 100644 --- a/config/aaa.py +++ b/config/aaa.py @@ -78,6 +78,44 @@ def login(auth_protocol): add_table_kv('AAA', 'authentication', 'login', val) authentication.add_command(login) +# cmd: aaa authorization +@click.command() +@click.argument('protocol', nargs=-1, type=click.Choice([ "tacacs+", "local", "tacacs+ local"])) +def authorization(protocol): + """Switch AAA authorization [tacacs+ | local | '\"tacacs+ local\"']""" + if len(protocol) == 0: + click.echo('Argument "protocol" is required') + return + + if len(protocol) == 1 and (protocol[0] == 'tacacs+' or protocol[0] == 'local'): + add_table_kv('AAA', 'authorization', 'login', protocol[0]) + elif len(protocol) == 1 and protocol[0] == 'tacacs+ local': + add_table_kv('AAA', 'authorization', 'login', 'tacacs+,local') + else: + click.echo('Not a valid command') +aaa.add_command(authorization) + +# cmd: aaa accounting +@click.command() +@click.argument('protocol', nargs=-1, type=click.Choice(["disable", "tacacs+", "local", "tacacs+ local"])) +def accounting(protocol): + """Switch AAA accounting [disable | tacacs+ | local | '\"tacacs+ local\"']""" + if len(protocol) == 0: + click.echo('Argument "protocol" is required') + return + + if len(protocol) == 1: + if protocol[0] == 'tacacs+' or protocol[0] == 'local': + add_table_kv('AAA', 'accounting', 'login', protocol[0]) + elif protocol[0] == 'tacacs+ local': + add_table_kv('AAA', 'accounting', 'login', 'tacacs+,local') + elif protocol[0] == 'disable': + del_table_key('AAA', 'accounting', 'login') + else: + click.echo('Not a valid command') + else: + click.echo('Not a valid command') +aaa.add_command(accounting) @click.group() def tacacs(): diff --git a/show/main.py b/show/main.py index 73d8089ee5..0a98f4b7ee 100644 --- a/show/main.py +++ b/show/main.py @@ -1434,10 +1434,20 @@ def aaa(): 'authentication': { 'login': 'local (default)', 'failthrough': 'False (default)' + }, + 'authorization': { + 'login': 'local (default)' + }, + 'accounting': { + 'login': 'disable (default)' } } if 'authentication' in data: aaa['authentication'].update(data['authentication']) + if 'authorization' in data: + aaa['authorization'].update(data['authorization']) + if 'accounting' in data: + aaa['accounting'].update(data['accounting']) for row in aaa: entry = aaa[row] for key in entry: