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.
In plain terms
- 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.
Must act 1 item needs code or config changes
Ruby requirement changed in 4.0.0.rc1: >= 1.9.3 → >= 2.1.0.
What you must change
Security1
Authentication Bypass in Devise
Moderate · CVSS 5.3API changes
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