Avoid showing change of password form if you have a backend that doesn't support password change.

Review Request #5797 — Created May 12, 2014 and submitted — Latest diff uploaded

Information

Review Board

Reviewers

See bug description first.

Basically, if your backend has supports_change_password set to False, your account preferences panel still has an ability to change password, while it shouldn't be there.

I think someone just placed the necessary is_visible() into the incorrect position. The correct version of the is_visible() method (the one that was checking supports_change_password) was placed into AccountSettingsForm class.
I STRONGLY believe that we shouldn't be preventing people from changing their timezone if their backend doesn't support password change. Thus everything that should be done is moving is_visible method to correct place.

Before:
If you use a backend that has supports_change_password as False, your /account/preferences page still has Authentication tab, which corresponds to password changing. If you try to change your password, you get an error as described in the bug. You can also notice that the settings bar went missing for some reason.

After:
If supports_change_password is False for your backend, the Authentication tab isn't visible, and the Settings tab is back!

I also verified that nothing changed for backends that support password change.