summaryrefslogtreecommitdiff
path: root/python/samba
diff options
context:
space:
mode:
authorNoel Power <noel.power@suse.com>2018-08-11 14:02:25 +0100
committerAndrew Bartlett <abartlet@samba.org>2018-09-03 03:22:22 +0200
commit638476f86d4f8072de186eac562c176bacef68ef (patch)
treefdad6cf3e36efc3aa34232bd66f5a186da3d1dec /python/samba
parent210b950c81d252c0af0fb82cb9241fad0ead5280 (diff)
downloadsamba-638476f86d4f8072de186eac562c176bacef68ef.tar.gz
python/samba: PY3 port for samba.tests.samba_tool.user_wdigest test
In addition to the attributes that caused some issues specifically with the test some other ldb.bytes objects (those seen to be used as strings) have been adjusted (with str()) to ensure they should work correct in PY3. Signed-off-by: Noel Power <noel.power@suse.com> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'python/samba')
-rw-r--r--python/samba/netcmd/user.py29
-rw-r--r--python/samba/tests/samba_tool/user_wdigest.py2
2 files changed, 16 insertions, 15 deletions
diff --git a/python/samba/netcmd/user.py b/python/samba/netcmd/user.py
index 7f4c0951050..0d13b30a3c9 100644
--- a/python/samba/netcmd/user.py
+++ b/python/samba/netcmd/user.py
@@ -55,6 +55,7 @@ from samba.netcmd import (
Option,
)
from samba.compat import text_type
+from samba.compat import get_bytes
try:
import io
@@ -984,11 +985,11 @@ class GetPasswordCommand(Command):
unicodePwd = obj["unicodePwd"][0]
if add_unicodePwd:
del obj["unicodePwd"]
- account_name = obj["sAMAccountName"][0]
+ account_name = str(obj["sAMAccountName"][0])
if add_sAMAcountName:
del obj["sAMAccountName"]
if "userPrincipalName" in obj:
- account_upn = obj["userPrincipalName"][0]
+ account_upn = str(obj["userPrincipalName"][0])
else:
realm = self.lp.get("realm")
account_upn = "%s@%s" % (account_name, realm.lower())
@@ -1168,7 +1169,7 @@ class GetPasswordCommand(Command):
primary_wdigest)
try:
digest = binascii.hexlify(bytearray(digests.hashes[i - 1].hash))
- return "%s:%s:%s" % (user, realm, digest)
+ return "%s:%s:%s" % (user, realm, text_type(digest, 'utf8'))
except IndexError:
return None
@@ -1873,13 +1874,13 @@ samba-tool user syncpasswords --terminate \\
self.sync_command = sync_command
add_ldif = "dn: %s\n" % self.cache_dn
add_ldif += "objectClass: userSyncPasswords\n"
- add_ldif += "samdbUrl:: %s\n" % base64.b64encode(self.samdb_url).decode('utf8')
- add_ldif += "dirsyncFilter:: %s\n" % base64.b64encode(self.dirsync_filter).decode('utf8')
+ add_ldif += "samdbUrl:: %s\n" % base64.b64encode(get_bytes(self.samdb_url)).decode('utf8')
+ add_ldif += "dirsyncFilter:: %s\n" % base64.b64encode(get_bytes(self.dirsync_filter)).decode('utf8')
for a in self.dirsync_attrs:
- add_ldif += "dirsyncAttribute:: %s\n" % base64.b64encode(a).decode('utf8')
+ add_ldif += "dirsyncAttribute:: %s\n" % base64.b64encode(get_bytes(a)).decode('utf8')
add_ldif += "dirsyncControl: %s\n" % self.dirsync_controls[0]
for a in self.password_attrs:
- add_ldif += "passwordAttribute:: %s\n" % base64.b64encode(a).decode('utf8')
+ add_ldif += "passwordAttribute:: %s\n" % base64.b64encode(get_bytes(a)).decode('utf8')
if self.decrypt_samba_gpg:
add_ldif += "decryptSambaGPG: TRUE\n"
else:
@@ -1895,22 +1896,22 @@ samba-tool user syncpasswords --terminate \\
ldif = self.cache.write_ldif(msg, ldb.CHANGETYPE_NONE)
self.outf.write("%s" % ldif)
else:
- self.dirsync_filter = res[0]["dirsyncFilter"][0]
+ self.dirsync_filter = str(res[0]["dirsyncFilter"][0])
self.dirsync_attrs = []
for a in res[0]["dirsyncAttribute"]:
- self.dirsync_attrs.append(a)
- self.dirsync_controls = [res[0]["dirsyncControl"][0], "extended_dn:1:0"]
+ self.dirsync_attrs.append(str(a))
+ self.dirsync_controls = [str(res[0]["dirsyncControl"][0]), "extended_dn:1:0"]
self.password_attrs = []
for a in res[0]["passwordAttribute"]:
- self.password_attrs.append(a)
- decrypt_string = res[0]["decryptSambaGPG"][0]
+ self.password_attrs.append(str(a))
+ decrypt_string = str(res[0]["decryptSambaGPG"][0])
assert(decrypt_string in ["TRUE", "FALSE"])
if decrypt_string == "TRUE":
self.decrypt_samba_gpg = True
else:
self.decrypt_samba_gpg = False
if "syncCommand" in res[0]:
- self.sync_command = res[0]["syncCommand"][0]
+ self.sync_command = str(res[0]["syncCommand"][0])
else:
self.sync_command = None
if "currentPid" in res[0]:
@@ -2154,7 +2155,7 @@ samba-tool user syncpasswords --terminate \\
def dirsync_loop():
while True:
- res = self.samdb.search(expression=self.dirsync_filter,
+ res = self.samdb.search(expression=str(self.dirsync_filter),
scope=ldb.SCOPE_SUBTREE,
attrs=self.dirsync_attrs,
controls=self.dirsync_controls)
diff --git a/python/samba/tests/samba_tool/user_wdigest.py b/python/samba/tests/samba_tool/user_wdigest.py
index 7817744ef8b..cd43a663e54 100644
--- a/python/samba/tests/samba_tool/user_wdigest.py
+++ b/python/samba/tests/samba_tool/user_wdigest.py
@@ -76,7 +76,7 @@ class UserCmdWdigestTestCase(SambaToolCmdTest):
base=self.samdb.get_config_basedn(),
expression="ncName=%s" % self.samdb.get_default_basedn(),
attrs=["nETBIOSName"])
- self.netbios_domain = res[0]["nETBIOSName"][0]
+ self.netbios_domain = str(res[0]["nETBIOSName"][0])
self.runsubcmd("user",
"create",
USER_NAME,