diff options
author | jessib <jessib@riseup.net> | 2013-11-11 13:15:26 -0800 |
---|---|---|
committer | jessib <jessib@riseup.net> | 2013-11-11 13:15:26 -0800 |
commit | d4d970095d0370d7d5744fdc0ebc7b8d9bbd1a4c (patch) | |
tree | b035b29ccb465a75bfd019d46f037dc5de6fbc78 /users/app/models/account.rb | |
parent | 8c19b447dec3982107f93ea1ae2626f844045249 (diff) | |
parent | 69a41bee2548fa8743dd3188b0ebfc84dac17062 (diff) |
Merge pull request #109 from azul/feature/clear-all-data-of-deleted-user
Feature/clear data of deleted user
Diffstat (limited to 'users/app/models/account.rb')
-rw-r--r-- | users/app/models/account.rb | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/users/app/models/account.rb b/users/app/models/account.rb index 5368a1b..5c943bb 100644 --- a/users/app/models/account.rb +++ b/users/app/models/account.rb @@ -1,5 +1,10 @@ # -# A Composition of a User record and it's identity records. +# The Account model takes care of the livecycle of a user. +# It composes a User record and it's identity records. +# It also allows for other engines to hook into the livecycle by +# monkeypatching the create, update and destroy methods. +# There's an ActiveSupport load_hook at the end of this file to +# make this more easy. # class Account @@ -29,9 +34,7 @@ class Account def destroy return unless @user - Identity.by_user_id.key(@user.id).each do |identity| - identity.destroy - end + Identity.disable_all_for(@user) @user.destroy end @@ -54,4 +57,7 @@ class Account @new_identity.try(:save) && @old_identity.try(:save) end + # You can hook into the account lifecycle from different engines using + # ActiveSupport.on_load(:account) do ... + ActiveSupport.run_load_hooks(:account, self) end |