diff --git a/app/models/user.rb b/app/models/user.rb index 899f2bb74..056b8c13b 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -46,10 +46,13 @@ class User < ActiveRecord::Base attr_accessible :getting_started, :password, :password_confirmation, :language, :disable_mail - - - def update_user_preferences(pref_hash) + if self.disable_mail + mails = ['mentioned', 'request_received', 'comment_on_post', 'request_acceptence', 'also_commented', 'private_message'] + mails.each{|x| self.user_preferences.find_or_create_by_email_type(x)} + self.update_attributes(:disable_mail => false) + end + pref_hash.keys.each do |key| if pref_hash[key] == 'true' self.user_preferences.find_or_create_by_email_type(key) @@ -175,7 +178,8 @@ class User < ActiveRecord::Base ######### Mailer ####################### def mail(job, *args) - unless self.disable_mail + pref = job.to_s.gsub('Job::Mail', '').underscore + unless self.disable_mail || self.user_preferences.exists?(:email_type => pref) Resque.enqueue(job, *args) end end diff --git a/spec/models/user_preferences_spec.rb b/spec/models/user_preferences_spec.rb deleted file mode 100644 index 2c244c2d1..000000000 --- a/spec/models/user_preferences_spec.rb +++ /dev/null @@ -1,5 +0,0 @@ -require 'spec_helper' - -describe UserPreferences do - pending "add some examples to (or delete) #{__FILE__}" -end