[Zope-PAS] Re: Bug in ZODBUserManager
Tres Seaver
tseaver at palladion.com
Wed Jun 7 13:17:59 EDT 2006
Dominique Lederer wrote:
> Hello!
>
> I think a found a bug in ZODBUserManager.py in the updateUserPassword
> method.
>
> To reproduce:
> Add users via ZMI (id | login)
> user1 | login1
> user2 | login2
>
> Everything works fine.
> Now edit the second user (by clicking on "password" in the
> ZODBUserManager ZMI)
> And choose "login1" without quotes for the login name, retype your
> password.
>
> You now see two users in your ZODBUserManager, but only the second one
> will work.
> The first user is somehow "overwritten", you cant delete him, or even
> use him for authentification.
>
> I browsed the source (om not so good at that so please forgive if I went
> the wrong way ;) )
> And found the corresponding method "updateUserPassword"
>
> I think somewhere in this method the duplicate login check is missing,
> like in the method "addUser"
>
> if self._login_to_userid.get( login_name ) is not None:
> raise KeyError, 'Duplicate login name: %s' % login_name
>
> Maybe anyone knows how to fix this :) I do not.
>
> Cheers
> Dom
Please try the following patch::
------------------------------ 8< -----------------------------------
--- plugins/ZODBUserManager.py (revision 68513)
+++ plugins/ZODBUserManager.py (working copy)
@@ -314,6 +314,10 @@
old_login_name = self._userid_to_login[ user_id ]
if old_login_name != login_name:
+
+ if self._login_to_userid.get( login_name ) is not None:
+ raise KeyError, 'Duplicate login name: %s' % login_name
+
del self._login_to_userid[ old_login_name ]
self._login_to_userid[ login_name ] = user_id
self._userid_to_login[ user_id ] = login_name
------------------------------ 8< -----------------------------------
If it works, then please submit it along with your problem report to the
PAS collector:
http://www.zope.org/Collectors/PAS/
(Actually, please submit the issue even if the patch doesn't work).
Tres.
--
===================================================================
Tres Seaver +1 202-558-7113 tseaver at palladion.com
Palladion Software "Excellence by Design" http://palladion.com
More information about the Zope-PAS
mailing list