The partial app/views/dmsf_state/_user_pref.html.erb uses a condition
to include the email_notify setting only if the corresponding
notified_event is enabled. The database field email_notify, however,
does not accept a null value. But this is what occurs when the notified
event is disabled.
This patch changes the DmsfStateController to assign params[:email_notify]
only if the notified_event for dmsf_legacy_notifications is enabled.
When a user has 2FA enabled the WebDAV digest won't be created on sign
in. The reason is in RedmineDmsf::Hooks::Controllers::
AccountControllerHooks#controller_account_success_authentication_after
where the digest will be created only if the controller parameter
':password' is present. This works for a user authentication with login
name and password only. A user with 2fa enabled runs differently through
the authentication process and crosses the hook not before the 2fa
token was checked. Hence, there won't be a password parameter anymore.
Instead of manipulating controller params to provide the password
only the button text for reseting the digest will be changed if the
user has 2FA but no digest yet. This would make it more explicit that
the token is not expected to exist and can be created if missing.
The partial views/hooks/redmine_dmsf/_view_my_account.html.erb uses a
finder method where the action name still uses kebab case but since
migration 20240829093801_rename_dmsf_digest_token.rb it is required to
use snake case.
That is, dmsf-webdav-digest needs to be renamed to dmsf_webdav_digest
to find the token of the current user.