From f8367c3ee1418548b5397b6a21f287c2407963e1 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Wed, 13 Aug 2008 10:45:49 +0000 Subject: [PATCH 1/1] Allow a user's email address to be marked invalid, and suppress most notification mails for such users. --- app/controllers/user_controller.rb | 2 ++ app/models/notifier.rb | 11 +++++------ db/migrate/013_add_email_valid.rb | 10 ++++++++++ 3 files changed, 17 insertions(+), 6 deletions(-) create mode 100644 db/migrate/013_add_email_valid.rb diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index f2378f36d..35b88b65a 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -92,6 +92,7 @@ class UserController < ApplicationController user.pass_crypt = pass user.pass_crypt_confirmation = pass user.active = true + user.email_valid = true user.save! token.destroy Notifier::deliver_reset_password(user, pass) @@ -151,6 +152,7 @@ class UserController < ApplicationController if token and !token.user.active? @user = token.user @user.active = true + @user.email_valid = true @user.save! token.destroy flash[:notice] = 'Confirmed your account, thanks for signing up!' diff --git a/app/models/notifier.rb b/app/models/notifier.rb index 84d097341..ebf5af641 100644 --- a/app/models/notifier.rb +++ b/app/models/notifier.rb @@ -1,4 +1,3 @@ - class Notifier < ActionMailer::Base def signup_confirm(user, token) recipients user.email @@ -29,7 +28,7 @@ class Notifier < ActionMailer::Base end def gpx_success(trace, possible_points) - recipients trace.user.email + recipients trace.user.email if trace.user.email_valid from "webmaster@openstreetmap.org" subject "[OpenStreetMap] GPX Import success" headers "Auto-Submitted" => "auto-generated" @@ -41,7 +40,7 @@ class Notifier < ActionMailer::Base end def gpx_failure(trace, error) - recipients trace.user.email + recipients trace.user.email if trace.user.email_valid from "webmaster@openstreetmap.org" subject "[OpenStreetMap] GPX Import failure" headers "Auto-Submitted" => "auto-generated" @@ -52,7 +51,7 @@ class Notifier < ActionMailer::Base end def message_notification(message) - recipients message.recipient.email + recipients message.recipient.email if message.recipient.email_valid from "webmaster@openstreetmap.org" subject "[OpenStreetMap] #{message.sender.display_name} sent you a new message" headers "Auto-Submitted" => "auto-generated" @@ -69,7 +68,7 @@ class Notifier < ActionMailer::Base end def diary_comment_notification(comment) - recipients comment.diary_entry.user.email + recipients comment.diary_entry.user.email if comment.diary_entry.user.email_valid from "webmaster@openstreetmap.org" subject "[OpenStreetMap] #{comment.user.display_name} commented on your diary entry" headers "Auto-Submitted" => "auto-generated" @@ -100,7 +99,7 @@ class Notifier < ActionMailer::Base befriender = User.find_by_id(friend.user_id) befriendee = User.find_by_id(friend.friend_user_id) - recipients befriendee.email + recipients befriendee.email if befriendee.email_valid from "webmaster@openstreetmap.org" subject "[OpenStreetMap] #{befriender.display_name} added you as a friend" headers "Auto-Submitted" => "auto-generated" diff --git a/db/migrate/013_add_email_valid.rb b/db/migrate/013_add_email_valid.rb new file mode 100644 index 000000000..b8af4bf6a --- /dev/null +++ b/db/migrate/013_add_email_valid.rb @@ -0,0 +1,10 @@ +class AddEmailValid < ActiveRecord::Migration + def self.up + add_column "users", "email_valid", :boolean, :default => false, :null => false + User.update_all("email_valid = active") + end + + def self.down + remove_column "users", "email_valid" + end +end -- 2.43.2