diff options
author | Azul <azul@riseup.net> | 2016-07-04 20:19:21 +0200 |
---|---|---|
committer | Azul <azul@riseup.net> | 2016-07-05 08:56:05 +0200 |
commit | 638acc59a241e141cf0fc9ccbf4e3c5578b98f0c (patch) | |
tree | 82c09920af4053b42eaac22365af239078491000 | |
parent | 949e17c7c30c5b179ba6545782ae995178481f78 (diff) |
Fix db:migrate and similar tasks
We saw errors from duplicate loading of LocalEmail and
LoginFormatValidation. The latter resulted in a crash.
In an attempt to ensure all subclasses of Couchrest::Model::Base are
loaded Couchrest::Model::Utils::Migrate requires all files in app/models.
We have an extension that does the same for the engines.
During this process LoginFormatValidation and LocalEmail were autoloaded
when 'identity' was required. Afterwards they were required again.
It looks like rails' autoload mechanism does not play nicely with require.
So to make sure they are not autoloaded first move the concerns and
helper classes into the lib directory and require them explicitly.
-rw-r--r-- | app/models/identity.rb | 2 | ||||
-rw-r--r-- | app/models/user.rb | 2 | ||||
-rw-r--r-- | engines/support/app/models/account_extension/tickets.rb | 13 | ||||
-rw-r--r-- | engines/support/config/initializers/account_lifecycle.rb | 2 | ||||
-rw-r--r-- | engines/support/lib/account_extension/tickets.rb | 15 | ||||
-rw-r--r-- | lib/email.rb (renamed from app/models/email.rb) | 0 | ||||
-rw-r--r-- | lib/local_email.rb (renamed from app/models/local_email.rb) | 1 | ||||
-rw-r--r-- | lib/login_format_validation.rb (renamed from app/models/login_format_validation.rb) | 0 |
8 files changed, 22 insertions, 13 deletions
diff --git a/app/models/identity.rb b/app/models/identity.rb index f987e4e..92f8f7a 100644 --- a/app/models/identity.rb +++ b/app/models/identity.rb @@ -1,3 +1,5 @@ +require 'login_format_validation' +require 'local_email' # # Identity states: # diff --git a/app/models/user.rb b/app/models/user.rb index cb093cf..206c0df 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,3 +1,5 @@ +require 'login_format_validation' + class User < CouchRest::Model::Base include LoginFormatValidation diff --git a/engines/support/app/models/account_extension/tickets.rb b/engines/support/app/models/account_extension/tickets.rb deleted file mode 100644 index f38d5fd..0000000 --- a/engines/support/app/models/account_extension/tickets.rb +++ /dev/null @@ -1,13 +0,0 @@ -module AccountExtension::Tickets - extend ActiveSupport::Concern - - def destroy_with_tickets(destroy_identities=false) - Ticket.destroy_all_from(self.user) - destroy_without_tickets(destroy_identities) - end - - included do - alias_method_chain :destroy, :tickets - end - -end diff --git a/engines/support/config/initializers/account_lifecycle.rb b/engines/support/config/initializers/account_lifecycle.rb index d9f04c1..9060757 100644 --- a/engines/support/config/initializers/account_lifecycle.rb +++ b/engines/support/config/initializers/account_lifecycle.rb @@ -1,3 +1,5 @@ +require 'account_extension/tickets' + ActiveSupport.on_load(:account) do include AccountExtension::Tickets end diff --git a/engines/support/lib/account_extension/tickets.rb b/engines/support/lib/account_extension/tickets.rb new file mode 100644 index 0000000..63f4873 --- /dev/null +++ b/engines/support/lib/account_extension/tickets.rb @@ -0,0 +1,15 @@ +module AccountExtension + module Tickets + extend ActiveSupport::Concern + + def destroy_with_tickets(destroy_identities=false) + Ticket.destroy_all_from(self.user) + destroy_without_tickets(destroy_identities) + end + + included do + alias_method_chain :destroy, :tickets + end + + end +end diff --git a/app/models/email.rb b/lib/email.rb index 4090275..4090275 100644 --- a/app/models/email.rb +++ b/lib/email.rb diff --git a/app/models/local_email.rb b/lib/local_email.rb index ded7baf..7c592e1 100644 --- a/app/models/local_email.rb +++ b/lib/local_email.rb @@ -1,3 +1,4 @@ +require 'email' class LocalEmail < Email BLACKLIST_FROM_RFC2142 = [ diff --git a/app/models/login_format_validation.rb b/lib/login_format_validation.rb index c1fcf70..c1fcf70 100644 --- a/app/models/login_format_validation.rb +++ b/lib/login_format_validation.rb |