|
16 | 16 | # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, |
17 | 17 | # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
18 | 18 | # |
19 | | -# $Id: admin.py,v 1.33 2002-09-26 07:39:21 richard Exp $ |
| 19 | +# $Id: admin.py,v 1.34 2002-09-26 07:41:54 richard Exp $ |
20 | 20 |
|
21 | 21 | import sys, os, getpass, getopt, re, UserDict, shlex, shutil |
22 | 22 | try: |
@@ -579,7 +579,7 @@ def do_display(self, args): |
579 | 579 | value = cl.get(nodeid, key) |
580 | 580 | print _('%(key)s: %(value)s')%locals() |
581 | 581 |
|
582 | | - def do_create(self, args): |
| 582 | + def do_create(self, args, pwre = re.compile(r'{(\w+)}(.+)')): |
583 | 583 | '''Usage: create classname property=value ... |
584 | 584 | Create a new entry of a given class. |
585 | 585 |
|
@@ -642,7 +642,15 @@ def do_create(self, args): |
642 | 642 | except ValueError, message: |
643 | 643 | raise UsageError, _('"%(value)s": %(message)s')%locals() |
644 | 644 | elif isinstance(proptype, hyperdb.Password): |
645 | | - props[propname] = password.Password(value) |
| 645 | + m = pwre.match(value) |
| 646 | + if m: |
| 647 | + # password is being given to us encrypted |
| 648 | + p = password.Password() |
| 649 | + p.scheme = m.group(1) |
| 650 | + p.password = m.group(2) |
| 651 | + props[propname] = p |
| 652 | + else: |
| 653 | + props[propname] = password.Password(value) |
646 | 654 | elif isinstance(proptype, hyperdb.Multilink): |
647 | 655 | props[propname] = value.split(',') |
648 | 656 | elif isinstance(proptype, hyperdb.Boolean): |
|
0 commit comments