There is no checkPermission method on a user, doing
adopted_user.checkPermission actually acquire the checkPermission method from portal_membership.
This is misleading to use user.checkPermission, because you can think you check a permission against that user, but you actually check the permission for the current authenticated user (or the user you "adopted" with the context manager).
So this commit changes the code to use explicitly portal_membership.checkPermission, this should have been the fix for #161 actually.