summaryrefslogtreecommitdiff
path: root/src/leap/bonafide/bonafide_cli.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/bonafide/bonafide_cli.py')
-rw-r--r--src/leap/bonafide/bonafide_cli.py110
1 files changed, 0 insertions, 110 deletions
diff --git a/src/leap/bonafide/bonafide_cli.py b/src/leap/bonafide/bonafide_cli.py
deleted file mode 100644
index 3f500e4..0000000
--- a/src/leap/bonafide/bonafide_cli.py
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# bonafide_cli.py
-# Copyright (C) 2015 LEAP
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-"""
-Command Line interface for bonafide cli.
-"""
-
-# XXX Warning! Work in progress------------------------------------------------
-# This is just a demo, real cli will work against a persistent bonafide daemon.
-# XXX -------------------------------------------------------------------------
-
-import argparse
-import os
-import sys
-from getpass import getpass
-
-from colorama import init as color_init
-from colorama import Fore
-
-from twisted.cred.credentials import UsernamePassword
-from twisted.internet import reactor
-
-from leap.bonafide import provider
-from leap.bonafide import session
-
-COMMANDS = ('signup', 'authenticate')
-
-
-def _cbShutDown(ignored):
- reactor.stop()
-
-
-def _authEb(failure):
- print(Fore.RED + "[error] " + Fore.YELLOW +
- failure.getErrorMessage() + Fore.RESET)
-
-
-def _display_token(result, _session):
- if result == session.OK:
- print('[ok] token--> ' + Fore.GREEN +
- _session.token + Fore.RESET)
- print('[ok] uuid --> ' + Fore.GREEN +
- _session.uuid + Fore.RESET)
-
-def _display_registered(result, _session, _provider):
- ok, user = result
- if ok == session.OK:
- print('[ok] registered username--> ' + Fore.GREEN +
- '%s@%s' % (user, _provider))
-
-
-def run_command(command, _provider, username, password, skip_logout):
- api = provider.Api('https://api.%s:4430' % _provider)
- credentials = UsernamePassword(username, password)
- cdev_pem = os.path.expanduser(
- '~/.config/leap/providers/%s/keys/ca/cacert.pem' % _provider)
- _session = session.Session(credentials, api, cdev_pem)
-
- if command == 'authenticate':
- d = _session.authenticate()
- d.addCallback(_display_token, _session)
- elif command == 'signup':
- d = _session.signup(username, password)
- d.addCallback(_display_registered, _session, _provider)
- else:
- print(Fore.YELLOW + "Command not implemented" + Fore.RESET)
- sys.exit()
-
- d.addErrback(_authEb)
- if not skip_logout:
- d.addCallback(lambda _: _session.logout())
- d.addBoth(_cbShutDown)
- reactor.run()
-
-
-def main():
- color_init()
- description = (Fore.YELLOW + 'Manage and configure a LEAP Account '
- 'using the bonafide protocol.' + Fore.RESET)
- parser = argparse.ArgumentParser(description=description)
- parser.add_argument('command', type=str, choices=COMMANDS)
- parser.add_argument(
- '--skip-logout', action="store_true",
- help=("Skip logout. Use this if you want to re-use the token."))
- parser.add_argument('--provider', dest='provider', required=True)
- parser.add_argument('--username', dest='username', required=True)
-
- ns = parser.parse_args()
- password = getpass(
- Fore.BLUE + '%s@%s password:' % (
- ns.username, ns.provider) + Fore.RESET)
- run_command(ns.command, ns.provider, ns.username, password, ns.skip_logout)
-
-
-if __name__ == '__main__':
- main()