summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>2010-02-12 13:55:14 +0100
committerMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>2010-02-12 15:04:07 +0100
commitde555895e59ffa691b5c8e910fe0d93cacc9281e (patch)
treecb66d3437551eff9a78faf524dfb745d6f1faa11
parente82ac8655e95e9df818d8b74c79c06f090a01d70 (diff)
downloadsamba-de555895e59ffa691b5c8e910fe0d93cacc9281e.tar.gz
samba-de555895e59ffa691b5c8e910fe0d93cacc9281e.tar.bz2
samba-de555895e59ffa691b5c8e910fe0d93cacc9281e.zip
s4:getopt.py - set the password callback only when no password has been provided
Previously the "no_pass" and "no_pass2" variables weren't handled correctly. Since at the initialisation of the "CredentialsOptions" we don't have any password at all. Only afterwards we could get one through "set_password". If a password is specified, use it. If no password is specified, consider the use fo an input mask on STDOUT. But if the loadparm context contains one prefer it over the input.
-rw-r--r--source4/scripting/python/samba/getopt.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/source4/scripting/python/samba/getopt.py b/source4/scripting/python/samba/getopt.py
index a62bd5ae5a..ba7a9ebb2e 100644
--- a/source4/scripting/python/samba/getopt.py
+++ b/source4/scripting/python/samba/getopt.py
@@ -66,7 +66,7 @@ class VersionOptions(optparse.OptionGroup):
class CredentialsOptions(optparse.OptionGroup):
"""Command line options for specifying credentials."""
def __init__(self, parser):
- self.no_pass = False
+ self.no_pass = True
optparse.OptionGroup.__init__(self, parser, "Credentials Options")
self.add_option("--simple-bind-dn", metavar="DN", action="callback",
callback=self._set_simple_bind_dn, type=str,
@@ -94,6 +94,7 @@ class CredentialsOptions(optparse.OptionGroup):
def _set_password(self, option, opt_str, arg, parser):
self.creds.set_password(arg)
+ self.no_pass = False
def _set_kerberos(self, option, opt_str, arg, parser):
if bool(arg) or arg.lower() == "yes":
@@ -111,7 +112,7 @@ class CredentialsOptions(optparse.OptionGroup):
:return: Credentials object
"""
self.creds.guess(lp)
- if not self.no_pass:
+ if self.no_pass:
self.creds.set_cmdline_callbacks()
return self.creds
@@ -119,7 +120,7 @@ class CredentialsOptionsDouble(CredentialsOptions):
"""Command line options for specifying credentials of two servers."""
def __init__(self, parser):
CredentialsOptions.__init__(self, parser)
- self.no_pass2 = False
+ self.no_pass2 = True
self.add_option("--simple-bind-dn2", metavar="DN2", action="callback",
callback=self._set_simple_bind_dn2, type=str,
help="DN to use for a simple bind")
@@ -146,6 +147,7 @@ class CredentialsOptionsDouble(CredentialsOptions):
def _set_password2(self, option, opt_str, arg, parser):
self.creds2.set_password(arg)
+ self.no_pass2 = False
def _set_kerberos2(self, option, opt_str, arg, parser):
if bool(arg) or arg.lower() == "yes":
@@ -163,6 +165,6 @@ class CredentialsOptionsDouble(CredentialsOptions):
:return: Credentials object
"""
self.creds2.guess(lp)
- if not self.no_pass2:
+ if self.no_pass2:
self.creds2.set_cmdline_callbacks()
return self.creds2