1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- class Auth
- class Backend
- class Developer < Auth::Backend::Base
- private
- # Special development/test password validation.
- # * For the developer mode the password 'test' is allowed for every User.
- # * For the test environment the password can be blank if also the user password is currently blank.
- #
- # @returns [Boolean] true if the validation works, otherwise false.
- def authenticated?
- if valid_for_developer_mode? || valid_for_test_environment?
- Rails.logger.info "System in test/developer mode, authentication for user #{user.login} ok."
- return true
- end
- false
- end
- # No password required for developer mode and test environment.
- #
- # @returns [Boolean] false
- def password_required?
- false
- end
- # Overwrites the default behaviour to check for a allowed environment.
- #
- # @returns [Boolean] true if the environment is development or test.
- def perform?
- allowed_environment?
- end
- # Check for allowed environments.
- #
- # @returns [Boolean] true if one allowed environment is active.
- def allowed_environment?
- Setting.get('developer_mode') == true || Rails.env.test?
- end
- # Validate password for test environment.
- #
- # @returns [Boolean] true if password and user password is blank, otherwise false.
- def valid_for_test_environment?
- Rails.env.test? && password.blank? && user.password.blank?
- end
- # Validate password for test environment.
- #
- # @returns [Boolean] true if the given password is 'test', otherwise false.
- def valid_for_developer_mode?
- Setting.get('developer_mode') == true && password == 'test'
- end
- end
- end
- end
|