From 2fc85ad7d109ca4304d1fb1515b7087a1bb2ae3e Mon Sep 17 00:00:00 2001 From: Ruben Pollan Date: Tue, 27 Sep 2016 19:28:28 -0500 Subject: [feature]Add change password command - Resolves: #8487 --- src/leap/bitmask/cli/user.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/leap/bitmask/cli/user.py') diff --git a/src/leap/bitmask/cli/user.py b/src/leap/bitmask/cli/user.py index 9ce4dc6a..1c4757e1 100644 --- a/src/leap/bitmask/cli/user.py +++ b/src/leap/bitmask/cli/user.py @@ -35,6 +35,7 @@ SUBCOMMANDS: create Registers new user, if possible auth Logs in against the provider logout Ends any active session with the provider + update Update user password active Shows the active user, if any '''.format(name=command.appname) @@ -47,7 +48,7 @@ SUBCOMMANDS: def create(self, raw_args): username = self.username(raw_args) - passwd = getpass.getpass() + passwd = self.getpass_twice() self.data += ['create', username, passwd, 'true'] return self._send(printer=command.default_dict_printer) @@ -62,6 +63,13 @@ SUBCOMMANDS: self.data += ['logout', username] return self._send(printer=command.default_dict_printer) + def update(self, raw_args): + username = self.username(raw_args) + current_passwd = getpass.getpass('Current password: ') + new_passwd = self.getpass_twice('New password: ') + self.data += ['update', username, current_passwd, new_passwd] + return self._send(printer=command.default_dict_printer) + def username(self, raw_args): args = tuple([command.appname] + sys.argv[1:3]) parser = argparse.ArgumentParser( @@ -78,3 +86,13 @@ SUBCOMMANDS: self._error("Username ID must be in the form ") return username + + def getpass_twice(self, prompt='Password: '): + while True: + passwd1 = getpass.getpass(prompt) + passwd2 = getpass.getpass('Retype the password: ') + if passwd1 == passwd2: + return passwd1 + else: + print "The passwords do not match, try again." + print "" -- cgit v1.2.3