Skip to content

Upgrading devise 3 to 4

Unknown3.5.10 → 4.9.4Security1Changed4

Fetching 30 releases from GitHub…12 / 30
UnknownUpgrade verdict

DepDelta is still reading the notes for 18 of 30 releases, so breaking changes can't be ruled out yet.

  • DepDelta is still reading the release notes in this range, so it can't rule out breaking changes yet.
  • This page updates as the notes come in.
1 item needs code or config changes

Ruby requirement changed in 4.0.0.rc1: >= 1.9.3 → >= 2.1.0.

Security1
Authentication Bypass in Devise
Moderate · CVSS 5.3

Generated by DepDelta from published Ruby source. Not mixed with prose notes.

  • removed: static method Devise.bcrypt(_, _)
  • changed: class AddDeviseTo < %= table_name.camelize %> < ActiveRecord::Migration → class AddDeviseTo < %= table_name.camelize %> < ActiveRecord::Migration<%= migration_version %>
  • changed: class DeviseCreate < %= table_name.camelize %> < ActiveRecord::Migration → class DeviseCreate < %= table_name.camelize %> < ActiveRecord::Migration<%= migration_version %>
  • added: const Devise.CONTROLLERS
  • added: const Devise.DeprecatedConstantAccessor
  • added: const Devise.ROUTES
  • added: const Devise.STRATEGIES
  • added: const Devise.URL_HELPERS
  • added: static method Devise.activerecord51?()
  • added: static method Devise.deprecator()
  • removed: method RouteSet.finalize_with_devise!()
  • removed: method DeviseGenerator.rails4?()
  • added: method DeviseGenerator.ar_config()
  • added: method DeviseGenerator.migration_version()
  • added: method DeviseGenerator.primary_key_string()
  • added: method DeviseGenerator.primary_key_type()
  • added: method DeviseGenerator.rails5_and_up?()
  • added: method DeviseGenerator.rails61_and_up?()
  • removed: class BaseSanitizer
  • removed: class CONTROLLERS < ActiveSupport::OrderedHash.new
  • removed: class CachingKeyGenerator
  • removed: class KeyGenerator
  • removed: class ROUTES < ActiveSupport::OrderedHash.new
  • removed: class STRATEGIES < ActiveSupport::OrderedHash.new
  • removed: class URL_HELPERS < ActiveSupport::OrderedHash.new
  • removed: constructor BaseSanitizer(_, _, _)
  • removed: constructor CachingKeyGenerator(_)
  • removed: constructor KeyGenerator(_, _ = …)
  • removed: method BaseSanitizer.for(_)
  • removed: method BaseSanitizer.sanitize(_)
  • removed: method CachingKeyGenerator.generate_key(_, _ = …)
  • removed: method KeyGenerator.generate_key(_, _ = …)
  • removed: method ParameterSanitizer.account_update()
  • removed: method ParameterSanitizer.sign_in()
  • removed: method ParameterSanitizer.sign_up()
  • removed: method TestHelpers.process(*)
  • removed: method TestHelpers.setup_controller_for_warden()
  • removed: method TestHelpers.sign_in(_, _ = …)
  • removed: method TestHelpers.sign_out(_)
  • removed: method TestHelpers.warden()
  • removed: property BaseSanitizer.params: reader
  • removed: property BaseSanitizer.resource_class: reader
  • removed: property BaseSanitizer.resource_name: reader
  • removed: protected method TestHelpers._catch_warden()
  • removed: protected method TestHelpers._process_unauthenticated(_, _ = …)
  • changed: class ParameterSanitizer < BaseSanitizer → class ParameterSanitizer
  • changed: constructor ParameterSanitizer(*) → constructor ParameterSanitizer(_, _, _)
  • added: class MissingWarden < StandardError
  • added: class SecretKeyFinder
  • added: const ParameterSanitizer.DEFAULT_PERMITTED_ATTRIBUTES
  • added: constructor MissingWarden()
  • added: constructor SecretKeyFinder(_)
  • added: method ParameterSanitizer.permit(_, keys: …, except: …)
  • added: method ParameterSanitizer.sanitize(_)
  • added: method RouteSet.finalize!()
  • added: method SecretKeyFinder.find()
  • added: module DeprecatedConstantAccessor
  • added: module Orm
  • added: module RouteSet
  • added: module Test
  • added: protected method FailureApp.i18n_locale()
  • added: protected method FailureApp.relative_url_root()
  • added: protected method FailureApp.relative_url_root?()
  • added: static method Orm.active_record?(_)
  • added: static method Orm.active_record_51?(_)
  • added: class Responder < ActionController::Responder
  • added: method SignInOut.bypass_sign_in(_, scope: …)
  • added: static method Responder.error_status()
  • added: static method Responder.redirect_status()
  • added: static set Responder.error_status(*)
  • added: static set Responder.redirect_status(*)
  • removed: method InstallGenerator.rails_4?()
  • removed: method OrmHelpers.needs_attr_accessible?()
  • removed: method OrmHelpers.rails_3?()
  • removed: method OrmHelpers.strong_parameters_enabled?()
  • added: class MissingORMError < Thor::Error
  • removed: method ClassMethods.hide!()
  • removed: module ClassMethods
  • added: protected property Helpers.resource: reader
  • added: protected property Helpers.scope_name: reader
  • removed: const Authenticatable.BLACKLIST_FOR_SERIALIZATION
  • removed: method Confirmable.confirm!(_ = …)
  • removed: method Recoverable.reset_password!(_, _)
  • removed: method Rememberable.remember_expired?()
  • changed: method Rememberable.remember_me!(*) → method Rememberable.remember_me!()
  • added: const Authenticatable.UNSAFE_ATTRIBUTES_FOR_SERIALIZATION
  • added: constructor DatabaseAuthenticatable(*)
  • added: method Authenticatable.inspect()
  • added: method DatabaseAuthenticatable.send_email_changed_notification()
  • added: method DatabaseAuthenticatable.skip_email_changed_notification!()
  • added: method DatabaseAuthenticatable.skip_password_change_notification!()
  • added: method Lockable.increment_failed_attempts()
  • added: method Lockable.reset_failed_attempts!()
  • added: protected method Confirmable.send_email_changed_notification?()
  • added: protected method Confirmable.skip_reconfirmation_in_callback!()
  • added: protected method DatabaseAuthenticatable.send_email_changed_notification?()
  • added: protected method Recoverable.clear_reset_password_token?()
  • added: protected method Trackable.extract_ip_from(_)
  • removed: static method UrlHelpers.define_helpers(_)
  • changed: method UrlHelpers.omniauth_authorize_path(_, *) → method UrlHelpers.omniauth_authorize_path(_, _, *)
  • changed: method UrlHelpers.omniauth_callback_path(_, *) → method UrlHelpers.omniauth_callback_path(_, _, *)
  • added: method UrlHelpers.omniauth_authorize_url(_, _, *)
  • added: method UrlHelpers.omniauth_callback_url(_, _, *)
  • added: method DirtyTrackingNewMethods.devise_email_before_last_save()
  • added: method DirtyTrackingNewMethods.devise_email_in_database()
  • added: method DirtyTrackingNewMethods.devise_respond_to_and_will_save_change_to_attribute?(_)
  • added: method DirtyTrackingNewMethods.devise_saved_change_to_email?()
  • added: method DirtyTrackingNewMethods.devise_saved_change_to_encrypted_password?()
  • added: method DirtyTrackingNewMethods.devise_will_save_change_to_email?()
  • added: method DirtyTrackingOldMethods.devise_email_before_last_save()
  • added: method DirtyTrackingOldMethods.devise_email_in_database()
  • added: method DirtyTrackingOldMethods.devise_respond_to_and_will_save_change_to_attribute?(_)
  • added: method DirtyTrackingOldMethods.devise_saved_change_to_email?()
  • added: method DirtyTrackingOldMethods.devise_saved_change_to_encrypted_password?()
  • added: method DirtyTrackingOldMethods.devise_will_save_change_to_email?()
  • added: module DirtyTrackingNewMethods
  • added: module DirtyTrackingOldMethods
  • added: method ControllerHelpers.process(*)
  • added: method ControllerHelpers.setup_controller_for_warden()
  • added: method ControllerHelpers.sign_in(_, _ = …, scope: …)
  • added: method ControllerHelpers.sign_out(_)
  • added: method ControllerHelpers.warden()
  • added: method IntegrationHelpers.sign_in(_, scope: …)
  • added: method IntegrationHelpers.sign_out(_)
  • added: module ControllerHelpers
  • added: module IntegrationHelpers
  • added: protected method ControllerHelpers._catch_warden()
  • added: protected method ControllerHelpers._process_unauthenticated(_, _ = …)
  • added: protected method IntegrationHelpers.setup_integration_for_devise()
  • added: protected method IntegrationHelpers.teardown_integration_for_devise()
  • removed: const Common.NULL_STORE