You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2020/01/27 21:03:09 UTC
[allura] 02/02: [#7878] ldap unicode fixes
This is an automated email from the ASF dual-hosted git repository.
brondsem pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git
commit b6f250ad58bbf27ef4f552830fa2d13b633dcf5f
Author: Dave Brondsema <da...@brondsema.net>
AuthorDate: Mon Jan 27 15:44:02 2020 -0500
[#7878] ldap unicode fixes
---
Allura/allura/lib/plugin.py | 20 ++++++++++----------
Allura/allura/tests/unit/test_ldap_auth_provider.py | 4 ++--
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/Allura/allura/lib/plugin.py b/Allura/allura/lib/plugin.py
index 904ddca..5c09d53 100644
--- a/Allura/allura/lib/plugin.py
+++ b/Allura/allura/lib/plugin.py
@@ -657,7 +657,7 @@ class LdapAuthenticationProvider(AuthenticationProvider):
return result
# full registration into LDAP
- uid = str(M.AuthGlobals.get_next_uid())
+ uid = str(M.AuthGlobals.get_next_uid()).encode('utf-8')
try:
con = ldap_conn()
uname = user_doc['username'].encode('utf-8')
@@ -665,14 +665,14 @@ class LdapAuthenticationProvider(AuthenticationProvider):
ldif_u = modlist.addModlist(dict(
uid=uname,
userPassword=self._encode_password(user_doc['password']),
- objectClass=['account', 'posixAccount'],
+ objectClass=[b'account', b'posixAccount'],
cn=display_name,
uidNumber=uid,
- gidNumber='10001',
- homeDirectory='/home/' + uname,
- loginShell='/bin/bash',
+ gidNumber=b'10001',
+ homeDirectory=b'/home/' + uname,
+ loginShell=b'/bin/bash',
gecos=uname,
- description='SCM user account'))
+ description=b'SCM user account'))
try:
con.add_s(ldap_user_dn(user_doc['username']), ldif_u)
except ldap.ALREADY_EXISTS:
@@ -720,9 +720,9 @@ class LdapAuthenticationProvider(AuthenticationProvider):
rounds = asint(config.get(cfg_prefix + 'rounds', 6000))
salt = self._get_salt(salt_len) if salt is None else salt
encrypted = crypt.crypt(
- password.encode('utf-8'),
+ six.ensure_str(password),
'$%s$rounds=%s$%s' % (algorithm, rounds, salt))
- return '{CRYPT}%s' % encrypted
+ return b'{CRYPT}%s' % encrypted.encode('utf-8')
def by_username(self, username):
from allura import model as M
@@ -739,7 +739,7 @@ class LdapAuthenticationProvider(AuthenticationProvider):
con = ldap_conn(ldap_ident, ldap_pass)
new_password = self._encode_password(new_password)
con.modify_s(
- dn, [(ldap.MOD_REPLACE, 'userPassword', new_password)])
+ dn, [(ldap.MOD_REPLACE, b'userPassword', new_password)])
con.unbind_s()
user.last_password_updated = datetime.utcnow()
session(user).flush(user)
@@ -1734,7 +1734,7 @@ class LdapUserPreferencesProvider(UserPreferencesProvider):
con = ldap_conn()
ldap_attr = self.fields[pref_name]
con.modify_s(ldap_user_dn(user.username),
- [(ldap.MOD_REPLACE, ldap_attr, pref_value.encode('utf-8'))])
+ [(ldap.MOD_REPLACE, ldap_attr.encode('utf-8'), pref_value.encode('utf-8'))])
con.unbind_s()
else:
return LocalUserPreferencesProvider().set_pref(user, pref_name, pref_value)
diff --git a/Allura/allura/tests/unit/test_ldap_auth_provider.py b/Allura/allura/tests/unit/test_ldap_auth_provider.py
index f635dd5..69865dc 100644
--- a/Allura/allura/tests/unit/test_ldap_auth_provider.py
+++ b/Allura/allura/tests/unit/test_ldap_auth_provider.py
@@ -64,9 +64,9 @@ class TestLdapAuthenticationProvider(object):
self.provider.set_password(user, 'old-pass', 'new-pass')
ldap.initialize.assert_called_once_with('ldaps://localhost/')
connection = ldap.initialize.return_value
- connection.bind_s.called_once_with(dn, 'old-pass')
+ connection.bind_s.called_once_with(dn, b'old-pass')
connection.modify_s.assert_called_once_with(
- dn, [(ldap.MOD_REPLACE, 'userPassword', 'new-pass-hash')])
+ dn, [(ldap.MOD_REPLACE, b'userPassword', b'new-pass-hash')])
assert_equal(connection.unbind_s.call_count, 1)
@patch('allura.lib.plugin.ldap')