summaryrefslogtreecommitdiff
path: root/users/app/models/account.rb
diff options
context:
space:
mode:
authorjessib <jessib@riseup.net>2013-11-11 13:15:26 -0800
committerjessib <jessib@riseup.net>2013-11-11 13:15:26 -0800
commitd4d970095d0370d7d5744fdc0ebc7b8d9bbd1a4c (patch)
treeb035b29ccb465a75bfd019d46f037dc5de6fbc78 /users/app/models/account.rb
parent8c19b447dec3982107f93ea1ae2626f844045249 (diff)
parent69a41bee2548fa8743dd3188b0ebfc84dac17062 (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.rb14
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