Well the problem with auth_crypt is that the inheritance structure can be as follows:
-> auth_crypt -> auth_passkey -> base.
Authentication of regular user account with admin password fails in auth_crypt. Auth_crypt calls super(), which is this module's override. Regular authentication of the user account with the admin password fails. You then call super() with the SUPERUSER_ID which fails because the password is encrypted. If you call self.check_credentials from your self_credentials override, then you pass through auth_crypt again which now succesfully authenticates the administrator account. Or not, but then you don't call self.check_credentials but super instead because uid is already SUPERUSER_ID.
Well the problem with auth_crypt is that the inheritance structure can be as follows:
-> auth_crypt -> auth_passkey -> base.
Authentication of regular user account with admin password fails in auth_crypt. Auth_crypt calls super(), which is this module's override. Regular authentication of the user account with the admin password fails. You then call super() with the SUPERUSER_ID which fails because the password is encrypted. If you call self.check_ credentials from your self_credentials override, then you pass through auth_crypt again which now succesfully authenticates the administrator account. Or not, but then you don't call self.check_ credentials but super instead because uid is already SUPERUSER_ID.