def on_mi_parse_password_activate(self, widget): dlg = dialogs.ParsePasswordDialog() response = dlg.run() if response == gtk.RESPONSE_OK: pswd = FigaroPassword() pswd.update(dlg.parseddict) self.addPasswordInteractively(pswd)
def do_new(self, arg): '''Add new password to current category. You will be prompted to enter fields. Syntax: new [-p] -p - Get properties by parsing provided text. Will open default text editor for you to paste text in. ''' new_pass = FigaroPassword( ) # FIXME: Password type shouldn't be hardcoded. argv = arg.split() if "-p" in argv: text = self.getEditorInput() choosendict = parser.parseMessage(text, self.conf.patterns) new_pass.update(choosendict) try: self.editPassword(new_pass) except (KeyboardInterrupt, EOFError): print "Cancelled" else: tree = self.getCwd() tree.addNode(new_pass) self.tryToSave()
def test_tooLongPassword(self): pwd = FigaroPassword() longpswd = "1234567890" * 3 self.assertRaises(FigaroPasswordTooLongError, pwd.__setitem__, 'password', longpswd) self.assertRaises(FigaroPasswordTooLongError, pwd.update, {'password': longpswd}) pwd.store_long_password = 1 pwd['title'] = "Long password" pwd['password'] = longpswd self.pdb.getTree()['Test'].addNode(pwd) self.pdb.save(fname="fpm.saved") self.pdb = PDBFigaro() self.pdb.open(self.password, fname='fpm.saved') saved_pwd = self.pdb.getTree()['Test'].locate('Long password')[0] self.assertEqual(saved_pwd['password'], longpswd)
def test_tooLongPassword(self): pwd = FigaroPassword() longpswd = "1234567890"*3; self.assertRaises(FigaroPasswordTooLongError, pwd.__setitem__, 'password', longpswd) self.assertRaises(FigaroPasswordTooLongError, pwd.update, {'password': longpswd}) pwd.store_long_password = 1 pwd['title'] = "Long password" pwd['password'] = longpswd self.pdb.getTree()['Test'].addNode(pwd) self.pdb.save(fname="fpm.saved") self.pdb = PDBFigaro() self.pdb.open(self.password, fname='fpm.saved') saved_pwd = self.pdb.getTree()['Test'].locate('Long password')[0] self.assertEqual(saved_pwd['password'], longpswd)
def do_new(self, arg): '''Add new password to current category. You will be prompted to enter fields. Syntax: new [-p | -t] -p - Get properties by parsing provided text. Will open default text editor for you to paste text in. Mutually exclusive with -t option. -t - Display editor template in default text editor. Mutually exclusive with -p option. ''' new_pass = FigaroPassword() # FIXME: Password type shouldn't be hardcoded. argv = arg.split() if "-p" in argv and "-t" in argv: print _("new: -p and -t arguments are mutually exclusive.") print _("try 'help new' for more information") elif "-p" in argv: text = self.getEditorInput() choosendict = parser.parseMessage(text, self.conf.patterns) new_pass.update(choosendict) elif "-t" in argv: text = self.getEditorInput(new_pass.asEditText()) choosendict = parser.parseMessage(text, [new_pass.getEditPattern()]) new_pass.update(choosendict) try: self.editPassword(new_pass) except (KeyboardInterrupt, EOFError): self.printMessage(_("Cancelled")) else: tree = self.getCwd() tree.addNode(new_pass) self.tryToSave()
def do_import(self, arg): '''Imports new password records into current category. Syntax: import Get properties by parsing provided text. Will open default text editor for you to paste text in. ''' argv = arg.split() tree = self.getCwd() text = self.getEditorInput() for line in text.split("\n"): new_pass = FigaroPassword() # FIXME: Password type shouldn't be hardcoded. choosendict = parser.parseMessage(line, self.conf.patterns) new_pass.update(choosendict) tree.addNode(new_pass) self.tryToSave()
def do_import(self, arg): '''Imports new password records into current category. Syntax: import Get properties by parsing provided text. Will open default text editor for you to paste text in. ''' argv = arg.split() tree = self.getCwd() text = self.getEditorInput() for line in [x for x in text.splitlines() if x]: new_pass = FigaroPassword( ) # FIXME: Password type shouldn't be hardcoded. choosendict = parser.parseMessage(line, self.conf.patterns) new_pass.update(choosendict) tree.addNode(new_pass) self.tryToSave()
def test_catlessPassword(self): 'Saving and loading password without category' tree = self.pdb.getTree() pwd = FigaroPassword(title='CLHost', password='******') tree.addNode(pwd) self.pdb.save(fname='fpm.saved') self.pdb = PDBFigaro() self.pdb.open(self.password, fname='fpm.saved') tlnodes = self.pdb.getTree().getNodes() self.assertEqual(len(tlnodes), 1) self.assertEqual(tlnodes[0].title, 'CLHost') self.assertEqual(tlnodes[0]['password'], 'CLPass') self.assertEqual(tlnodes[0]['url'], '')
def addPasswordInteractively(self, pswd=None): """Add the given password to the current category interactively. Let user deside add the password or not and let him correct information before adding.""" if pswd is None: pswd = FigaroPassword() dlg = dialogs.PasswordEditDialog(pswd) response = dlg.run() if response == gtk.RESPONSE_OK: self.getCWTree().addNode(pswd) self.setupPasswords() self.tryToSave()
def do_new(self, arg): '''Add new password to current category. You will be prompted to enter fields. Syntax: new [-p | -t] -p - Get properties by parsing provided text. Will open default text editor for you to paste text in. Mutually exclusive with -t option. -t - Display editor template in default text editor. Mutually exclusive with -p option. If the config option 'force-editor is set, this command defaults to the -t option when no options are provided. ''' new_pass = FigaroPassword( ) # FIXME: Password type shouldn't be hardcoded. argv = arg.split() use_visual_editor = len( argv) == 0 and self.conf.options["force-editor"] if "-p" in argv and "-t" in argv: print _("new: -p and -t arguments are mutually exclusive.") print _("try 'help new' for more information") elif "-p" in argv: text = self.getEditorInput() choosendict = parser.parseMessage(text, self.conf.patterns) new_pass.update(choosendict) elif "-t" in argv or use_visual_editor: text = self.getEditorInput(new_pass.asEditText()) choosendict = parser.parseMessage(text, [new_pass.getEditPattern()]) new_pass.update(choosendict) try: if not use_visual_editor: self.editPassword(new_pass) except (KeyboardInterrupt, EOFError): self.printMessage(_("Cancelled")) else: tree = self.getCwd() tree.addNode(new_pass) self.tryToSave()