Do not set LDAP password on set_preferences
issue7568 review62311003
This commit is contained in:
1 parent
ef74da8b67
commit
5f43cb19ec
2 files changed
+1
-29
No files matched your search
@@ -1,3 +1,4 @@
|
||||
* Do not set LDAP password on set_preferences
|
||||
* Remove support for Python 2.7
|
||||
|
||||
Version 4.8.0 - 2018-04-23
|
||||
|
||||
@@ -131,35 +131,6 @@ class User(metaclass=PoolMeta):
|
||||
cls._check_passwd_ldap_user(logins)
|
||||
super(User, cls).write(*args)
|
||||
|
||||
@classmethod
|
||||
def set_preferences(cls, values, parameters):
|
||||
if 'password' in values:
|
||||
if 'password' not in parameters:
|
||||
msg = cls.fields_get(['password'])['password']['string']
|
||||
raise LoginException('password', msg, type='password')
|
||||
old_password = parameters['password']
|
||||
try:
|
||||
server = ldap_server()
|
||||
if server:
|
||||
user = cls(Transaction().user)
|
||||
uid = config.get(section, 'uid', default='uid')
|
||||
users = cls.ldap_search_user(
|
||||
user.login, server, attrs=[uid])
|
||||
if users and len(users) == 1:
|
||||
[(dn, attrs)] = users
|
||||
con = ldap3.Connection(server, dn, old_password)
|
||||
if con.bind():
|
||||
con.extend.standard.modify_password(
|
||||
dn, old_password, values['password'])
|
||||
values = values.copy()
|
||||
del values['password']
|
||||
else:
|
||||
cls.raise_user_error('wrong_password')
|
||||
except LDAPException:
|
||||
logger.error('LDAPError when setting preferences',
|
||||
exc_info=True)
|
||||
super(User, cls).set_preferences(values, parameters)
|
||||
|
||||
@classmethod
|
||||
def _login_ldap(cls, login, parameters):
|
||||
if 'password' not in parameters:
|
||||
|
||||
Reference in new issue
Block a user