diff options
author | Giampaolo Lauria <lauria2@yahoo.com> | 2011-07-15 15:23:36 -0400 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2011-07-21 11:44:30 +1000 |
commit | 7c8b53a49ed5fc6d811eafe15ffd247d06404946 (patch) | |
tree | 7b44336a32e6bf6c9882977feb7998e03a3163f0 /source4/scripting/python | |
parent | a10e231b3b21a69783d97170652b95c547d4a44c (diff) | |
download | samba-7c8b53a49ed5fc6d811eafe15ffd247d06404946.tar.gz samba-7c8b53a49ed5fc6d811eafe15ffd247d06404946.tar.bz2 samba-7c8b53a49ed5fc6d811eafe15ffd247d06404946.zip |
samba-tool: added error handling for the user command
Caught exception whenever possible, added new check for newpassword to make sure it contains some chars
Signed-off-by: Andrew Tridgell <tridge@samba.org>
Diffstat (limited to 'source4/scripting/python')
-rw-r--r-- | source4/scripting/python/samba/netcmd/user.py | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/source4/scripting/python/samba/netcmd/user.py b/source4/scripting/python/samba/netcmd/user.py index f77af02064..ba85263634 100644 --- a/source4/scripting/python/samba/netcmd/user.py +++ b/source4/scripting/python/samba/netcmd/user.py @@ -47,9 +47,16 @@ class cmd_user_add(Command): lp = sambaopts.get_loadparm() creds = credopts.get_credentials(lp ) net = Net(creds, lp, server=credopts.ipaddress) - net.create_user(name) + try: + net.create_user(name) + except RuntimeError, msg: + raise CommandError("Failed to add user '%s': %s" % (name, msg)) + if password is not None: - net.set_password(name, creds.get_domain(), password, creds) + try: + net.set_password(name, creds.get_domain(), password, creds) + except RuntimeError, msg: + raise CommandError("Failed to set password '%s': %s" % (name, msg)) @@ -66,7 +73,7 @@ class cmd_user_delete(Command): try: net.delete_user(name) except RuntimeError, msg: - raise CommandError("Failed to delete user %s: %s" % (name, msg)) + raise CommandError("Failed to delete user '%s': %s" % (name, msg)) @@ -98,8 +105,8 @@ class cmd_user_enable(Command): try: samdb.enable_account(filter) except Exception, msg: - raise CommandError("Failed to enable user %s: %s" % (username or filter, msg)) - print("Enabled user %s" % (username or filter)) + raise CommandError("Failed to enable user '%s': %s" % (username or filter, msg)) + print("Enabled user '%s'" % (username or filter)) @@ -136,8 +143,9 @@ class cmd_user_setexpiry(Command): try: samdb.setexpiry(filter, days*24*3600, no_expiry_req=noexpiry) except Exception, msg: - raise CommandError("Failed to set expiry for user %s: %s" % (username or filter, msg)) - print("Set expiry for user %s to %u days" % (username or filter, days)) + raise CommandError("Failed to set expiry for user '%s': %s" % (username or filter, msg)) + print("Set expiry for user '%s' to %u days" % (username or filter, days)) + class cmd_user_setpassword(Command): @@ -163,7 +171,9 @@ class cmd_user_setpassword(Command): raise CommandError("Either the username or '--filter' must be specified!") password = newpassword - if password is None: + while 1: + if password is not None and password is not '': + break password = getpass("New Password: ") if filter is None: @@ -181,11 +191,12 @@ class cmd_user_setpassword(Command): samdb.setpassword(filter, password, force_change_at_next_login=must_change_at_next_login, username=username) - except Exception, e: - raise CommandError('Failed to set password for user "%s"' % username, e) + except Exception, msg: + raise CommandError("Failed to set password for user '%s': %s" % (username or filter, msg)) print "Changed password OK" + class cmd_user(SuperCommand): """User management [server connection needed]""" |