diff --git a/cccli/command.py b/cccli/command.py index 919f63e3472c98bc6a1ee437fca5cb339206a614..a54852c823897e080be5b98950e26479ff43e916 100644 --- a/cccli/command.py +++ b/cccli/command.py @@ -332,6 +332,29 @@ class Command(object): raise cmdError("RPCError: %s"%str(e)) cmd_delaccount.usage = "delaccount " + def cmd_passwd(self, argv): + '''Change account password''' + if len(argv) == 2: + if not self.cli.interactive: + raise cmdError("You must give a password argument in non interactive mode!") + a = self.printer.getpass("Password: ") + b = self.printer.getpass("Again: ") + if a != b: + raise cmdError("You don't type twice the same password. Aborted") + argv.append(a) + elif len(argv) == 3: + if self.cli.interactive: + s = "You cannot set password with clear argument in interactive mode.\n" + s += "*** Think to clean your history! ***" + raise cmdError(s) + else: + raise cmdBadArgument() + try: + self.cli.rpc.passwd(argv[1], argv[2]) + except RpcError as e: + raise cmdError("RPCError: %s"%str(e)) + cmd_passwd.usage = "passwd [password]" + class Alias(dict): ''' Alias wrapper'''