blob: b43c2181de1f26f9bd9b58c020e17b8b19583499 [file] [log] [blame]
class Notifier < ActionMailer::Base
default :from => ENV['EPFWIKI_REPLY_ADDRESS']
def welcome_pw_confirmationlink(user, request_host = ENV['EPFWIKI_BASE_URL'])
@recipients = user.email
@from = ENV['EPFWIKI_REPLY_ADDRESS']
@subject = "[" + ENV['EPFWIKI_APP_NAME'] + "] Welcome"
@user = user
@cadmin = User.find_central_admin
@subject = @subject
@request_host = request_host
mail(:to => @recipients, :subject => @subject, :content_type => 'text/html')
end
def lost_password(user, urls)
@recipients = user.email
@from = ENV['EPFWIKI_REPLY_ADDRESS']
@subject = "[" + ENV['EPFWIKI_APP_NAME'] + "] New Password"
@user = user
@admin = User.find_central_admin
@cnt = User.count
@urls = urls
mail(:to => @recipients, :subject => @subject, :content_type => 'text/html')
end
def error_report(exception, trace, session, params, env, sent_on = Time.now)
logger.info("Sending error report")
ca = User.find_central_admin
if ca
@recipients = ca.email
else
@recipients = ENV['EPFWIKI_ADMIN_EMAIL']
end
@from = ENV['EPFWIKI_REPLY_ADDRESS']
@subject = "[Error] exception in #{env['REQUEST_URI']}"
@sent_on = sent_on
@exception = exception
@trace = trace
@session = session
@params = params
@env = env
mail(:to => @recipients, :subject => @subject, :content_type => 'text/html')
end
#def summary(params, runtime = Time.now, report = nil)
def summary(rep)
@bcc = Utils.email_addresses_4_report(rep.users)
#@bcc = Utils.email_addresses_4_report(params[:user]) unless params[:user].blank?
@wikis = []
rep.items.each do |item|
logger.debug("item: #{item.inspect}")
w = nil
case item.class.name
when Comment.name then w = item.site
when Wiki.name then w = item
when Update.name then w = item.wiki
when Checkout.name then w = item.site
when Version.name then w = item.wiki
end
@wikis << w if !w.nil?
end
@wikis = @wikis.uniq
@report = rep
@from = ENV['EPFWIKI_REPLY_ADDRESS']
@subject2 = rep.subject # @subject cannot be used, will always be nil in the view
@sent_on = Time.now
@contributions = rep.items
@cadmin = User.find_central_admin
@host = ENV['EPFWIKI_BASE_URL']
mail(:bcc => @bcc, :subject => @report.subject, :content_type => "text/html")
end
def env_to(user, session, params, env, sent_on = Time.now)
content_type "text/html"
@recipients = user.email
@from = ENV['EPFWIKI_REPLY_ADDRESS']
@subject = "[" + ENV['EPFWIKI_APP_NAME'] + "] " + params[:action]
@sent_on = sent_on
@session = session
@params = params
@env = env
end
def site_status(update, s)
@cadmin = User.find_central_admin
@update = update
@s = s
mail(:cc => @cadmin.email, :to => update.user.email, :subject => "[#{ENV['EPFWIKI_APP_NAME']}] #{s}", :content_type => 'text/html')
end
def notification(theUsers, subject, introduction, text)
@link = "<a href=\"#{ENV['EPFWIKI_BASE_URL']}/users/account\">#{ENV['EPFWIKI_APP_NAME']}</a>"
@introduction = introduction
@text = text
@cadmin = User.find_central_admin
mail(:bcc => Utils.email_addresses_4_report(theUsers), :subject => "[#{ENV['EPFWIKI_APP_NAME']}] #{subject}", :content_type => "text/html") do |format|
format.html
#format.text
end
end
# TODO replace with notification
def email(theUsers, theSubject, theFilePaths, theText, cc = nil)
@from = ENV['EPFWIKI_REPLY_ADDRESS']
@cc = Utils.email_addresses_4_report(cc) unless cc.nil?
@subject = "[" + ENV['EPFWIKI_APP_NAME'] + "] " + theSubject
@recipients = Utils.email_addresses_4_report(theUsers)
@text = theText
@admin = User.find_central_admin
mail(:cc => @admin.email, :to => @recipients, :subject => @subject, :content_type => 'text/html')
#for filePath in theFilePaths # TODO enable
# attachment :content_type => "application/zip", :body => File.open(filePath, "rb") {|io| io.read}, :filename => filePath.split("/").last
#end
end
def contributions_processed(user, contributions)
@recipients = Utils.email_addresses_4_report(user)
@contributions = contributions
@cadmin = User.find_central_admin
@user = user
@from = ENV['EPFWIKI_REPLY_ADDRESS']
@bcc = Utils.email_addresses_4_report(@cadmin)
@subject = "[#{ENV['EPFWIKI_APP_NAME']}] Your contribution has been processed"
mail(:cc => @cadmin.email, :to => @recipients, :subject => @subject, :content_type => 'text/html')
end
def authorisation_problem(user, session, params, env)
user = User.new(:name => 'Unknown', :email => 'Unknown') if user.nil?
@cadmin = User.find_central_admin
@recipients = Utils.email_addresses_4_report(@cadmin)
@from = ENV['EPFWIKI_REPLY_ADDRESS']
@subject = "[#{ENV['EPFWIKI_APP_NAME']}] Autorisation Problem Detected"
@session = session
@params = params
@env = env
@subject = @subject
@user = user
mail(:cc => @cadmin.email, :to => @recipients, :subject => @subject, :content_type => 'text/html')
end
def feedback(feedback) # TODO implement test
@cadmin = User.find_central_admin
@recipients = Utils.email_addresses_4_report(@cadmin)
@from = ENV['EPFWIKI_REPLY_ADDRESS']
@subject = "[#{ENV['EPFWIKI_APP_NAME']}] Feedback Posted"
@subject = @subject
@feedback = feedback
@anywiki = Wiki.find(:first, :conditions => ['obsolete_on is null'])
mail(:cc => @cadmin.email, :to => @recipients, :subject => @subject, :content_type => 'text/html')
end
end