diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/admin_user_controller.rb | 12 | ||||
-rw-r--r-- | app/models/incoming_message.rb | 2 | ||||
-rw-r--r-- | app/views/admin_user/show.rhtml | 11 | ||||
-rw-r--r-- | app/views/admin_user/show_bounce_message.rhtml | 3 |
4 files changed, 25 insertions, 3 deletions
diff --git a/app/controllers/admin_user_controller.rb b/app/controllers/admin_user_controller.rb index 404c4c3fe..5d90e74fe 100644 --- a/app/controllers/admin_user_controller.rb +++ b/app/controllers/admin_user_controller.rb @@ -28,6 +28,10 @@ class AdminUserController < AdminController # Don't use @user as that is any logged in user @admin_user = User.find(params[:id]) end + + def show_bounce_message + @admin_user = User.find(params[:id]) + end def edit @admin_user = User.find(params[:id]) @@ -57,6 +61,14 @@ class AdminUserController < AdminController flash[:notice] = 'Track destroyed' redirect_to user_admin_url(track_thing.tracking_user) end + + def clear_bounce + user = User.find(params[:id]) + user.email_bounced_at = nil + user.email_bounce_message = "" + user.save! + redirect_to user_admin_url(user) + end def login_as @admin_user = User.find(params[:id]) # check user does exist diff --git a/app/models/incoming_message.rb b/app/models/incoming_message.rb index c19f1b6e3..2b795ddf5 100644 --- a/app/models/incoming_message.rb +++ b/app/models/incoming_message.rb @@ -1304,7 +1304,7 @@ class IncomingMessage < ActiveRecord::Base prefix = email prefix =~ /^(.*)@/ prefix = $1 - if !prefix.nil? && prefix.downcase.match(/^(postmaster|mailer-daemon|auto_reply|donotreply|no.reply)$/) + if !prefix.nil? && prefix.downcase.match(/^(postmaster|mailer-daemon|auto_reply|do.?not.?reply|no.reply)$/) return false end if !self.mail['return-path'].nil? && self.mail['return-path'].addr == "<>" diff --git a/app/views/admin_user/show.rhtml b/app/views/admin_user/show.rhtml index 18d23fe73..4af79e45a 100644 --- a/app/views/admin_user/show.rhtml +++ b/app/views/admin_user/show.rhtml @@ -13,18 +13,25 @@ <% end %> -<p> +<div> <strong>Id:</strong> <%= @admin_user.id%> <br> <% for column in User.content_columns %> <strong><%= column.human_name %>:</strong> <% if column.name == 'email' %> <a href="mailto:<%=h @admin_user.email %>"><%=h @admin_user.email%></a> + <% elsif column.name == 'email_bounce_message' %> + <% if !@admin_user.email_bounce_message.empty? %> + <a href="../show_bounce_message/<%= @admin_user.id.to_s %>">See bounce message</a> + <% end %> <% else %> <%=h @admin_user.send(column.name) %> <% end %> + <% if column.name == 'email_bounced_at' && !@admin_user.email_bounced_at.nil? %> + <form action="../clear_bounce/<%= @admin_user.id.to_s %>" style="display: inline;"><input type="submit" name="action" value="Clear bounce"></form> + <% end %> <br> <% end %> -</p> +</div> <p> <%= link_to 'Public page', main_url(user_url(@admin_user)) %> diff --git a/app/views/admin_user/show_bounce_message.rhtml b/app/views/admin_user/show_bounce_message.rhtml new file mode 100644 index 000000000..ad643a13e --- /dev/null +++ b/app/views/admin_user/show_bounce_message.rhtml @@ -0,0 +1,3 @@ +<h1>Email bounce message for <%= @admin_user.name %></h1> + +<pre><%= @admin_user.email_bounce_message %></pre> |