Class | Notifier
In: | app/models/notifier.rb
Parent: | ActionMailer::Base

More information:

- EPF Wiki Data model

Copyright (c) 2006 Logica

### Methods

authorisation_problem contributions_processed email env_to error_report feedback lost_password notification site_status summary welcome_pw_confirmationlink

### Public Instance methods

authorisation_problem(user, session, params, env)

[Source]

         # File app/models/notifier.rb, line 179
    179:   def authorisation_problem(user, session, params, env)
    180:     user = User.new(:name => 'Unknown', :email => 'Unknown') if user.nil?
    181:     content_type 'text/html'
    182:     @body['admin']     = User.find_central_admin
    183:     @recipients         = @body['admin']
    184:     @from               = ENV['EPFWIKI_REPLY_ADDRESS']
    185:     @subject            = "[#{ENV['EPFWIKI_APP_NAME']}] Autorisation Problem Detected"
    186:     @body['session']    = session
    187:     @body['params']     = params
    188:     @body['env']        = env
    189:     @body['subject']    = @subject
    190:     @body['user']       = user
    191:   end

contributions_processed(user, contributions)

[Source]

         # File app/models/notifier.rb, line 164
    164:   def contributions_processed(user, contributions)
    165:     # TODO remove
    166:     #conditions = ['done=? and review_note_send_on is null and user_id=?', 'Y', user.id]
    167:     #contributions = Upload.find(:all, :conditions => conditions) + Comment.find(:all, :conditions => conditions) + Version.find(:all, :conditions => ['done=? and review_note_send_on is null and baseline_process_id is null and user_id=?', 'Y', user.id])
    168:     @recipients = email_addresses_4_report(user)
    169:     #@cc = email_addresses_4_report(contributions.collect{|c|c.user}.uniq)
    170:     content_type "text/html"
    171:     @body['contributions'] = contributions
    172:     @body['admin'] = User.find_central_admin
    173:     @body['user'] = user
    174:     @bcc = email_addresses_4_report(@body['admin'])
    175:     @subject = "[#{ENV['EPFWIKI_APP_NAME']}] Your contribution has been processed"
    176:     @body['subject'] = @subject
    177:   end

email(theUsers, theSubject, theFilePaths, theText, cc = nil)

TODO replace with notification

[Source]

         # File app/models/notifier.rb, line 151
    151:   def email(theUsers, theSubject, theFilePaths, theText, cc = nil)
    152:     @from = ENV['EPFWIKI_REPLY_ADDRESS']
    153:     @cc = email_addresses_4_report(cc) unless cc.nil?
    154:     content_type "text/html"
    155:     @subject = "[" + ENV['EPFWIKI_APP_NAME'] + "] " + theSubject
    156:     @recipients = email_addresses_4_report(theUsers)
    157:     @body['text'] = theText
    158:     @body['admin'] = User.find_central_admin
    159:     for filePath  in theFilePaths
    160:       attachment :content_type => "application/zip",   :body => File.open(filePath, "rb") {|io| io.read}, :filename => filePath.split("/").last
    161:     end
    162:   end

env_to(user, session, params, env, sent_on = Time.now)

[Source]

         # File app/models/notifier.rb, line 116
    116:   def env_to(user, session, params, env, sent_on = Time.now)
    117:     content_type "text/html"
    118:     @recipients         = user.email
    119:     @from               = ENV['EPFWIKI_REPLY_ADDRESS']
    120:     @subject            = "[" + ENV['EPFWIKI_APP_NAME'] + "] " + params[:action]
    121:     @sent_on            = sent_on
    122:     @body["session"]    = session
    123:     @body["params"]     = params
    124:     @body["env"]        = env
    125:   end

error_report(exception, trace, session, params, env, sent_on = Time.now)

[Source]

        # File app/models/notifier.rb, line 42
    42:   def error_report(exception, trace, session, params, env, sent_on = Time.now)
    43:     content_type "text/html"
    44:     @recipients         = [User.find_central_admin.email, "onno.van.der.straaten@logica.com"]
    45:     @from               = ENV['EPFWIKI_REPLY_ADDRESS']
    46:     @subject            = "[Error] exception in #{env['REQUEST_URI']}"
    47:     @sent_on            = sent_on
    48:     @body["exception"]  = exception
    49:     @body["trace"]      = trace
    50:     @body["session"]    = session
    51:     @body["params"]     = params
    52:     @body["env"]        = env
    53:   end

feedback(feedback)

[Source]

         # File app/models/notifier.rb, line 193
    193:   def feedback(feedback)
    194:     content_type 'text/html'
    195:     @body['admin']     = User.find_central_admin
    196:     @recipients         = @body['admin']
    197:     @from               = ENV['EPFWIKI_REPLY_ADDRESS']
    198:     @subject            = "[#{ENV['EPFWIKI_APP_NAME']}] Feedback Posted"
    199:     @body['subject']    = @subject
    200:     @body['feedback']   = feedback
    201:     @body['anywiki']    = Wiki.find(:first, :conditions => ['obsolete_on is null'])
    202:   end

lost_password(user, urls)

[Source]

        # File app/models/notifier.rb, line 31
    31:   def lost_password(user, urls)
    32:     content_type "text/html"
    33:     @recipients = user.email
    34:     @from = ENV['EPFWIKI_REPLY_ADDRESS']
    35:     @subject = "[" + ENV['EPFWIKI_APP_NAME'] + "] New Password"
    36:     @body['user'] = user
    37:     @body['admin'] = User.find_central_admin
    38:     @body['cnt'] = User.count
    39:     @body['urls'] = urls
    40:   end

notification(theUsers, subject, introduction, text, request_host = ENV['EPFWIKI_HOST'])

[Source]

         # File app/models/notifier.rb, line 138
    138:   def notification(theUsers, subject, introduction, text, request_host = ENV['EPFWIKI_HOST'])
    139:     @from = ENV['EPFWIKI_REPLY_ADDRESS']
    140:     content_type "text/html"
    141:     @subject = "[#{ENV['EPFWIKI_APP_NAME']}] #{subject}"
    142:     @bcc = email_addresses_4_report(theUsers)
    143:     @body['link'] = "<a href=\"http://#{request_host}/users/account\">#{ENV['EPFWIKI_APP_NAME']}</a>"
    144:     @body['introduction'] = introduction
    145:     @body['text'] = text
    146:     @body['admin'] = User.find_central_admin
    147:     @body['subject'] = @subject
    148:   end

site_status(update, subject)

[Source]

         # File app/models/notifier.rb, line 127
    127:   def site_status(update, subject)
    128:     content_type "text/html"
    129:     @from = ENV['EPFWIKI_REPLY_ADDRESS']
    130:     @body['admin'] = User.find_central_admin
    131:     @subject =  "[#{ENV['EPFWIKI_APP_NAME']}] #{subject}"
    132:     @body['subject'] = @subject
    133:     @recipients = update.user.email
    134:     @cc = @body['admin'].email
    135:     @body['update'] = update
    136:   end

summary(params, runtime = Time.now)

[Source]

         # File app/models/notifier.rb, line 55
     55:   def summary(params, runtime = Time.now)
     56:     content_type "text/html"
     57:
     58:     case params[:type]
     59:     when 'D' # daily
     60:       starttime = (runtime - 1.day).at_beginning_of_day
     61:       endtime = runtime.at_beginning_of_day
     62:       @bcc = email_addresses_4_report(User.find_all_by_notify_daily(1))
     63:       subject_text = 'Daily'
     64:     when 'W' # weekly
     65:       starttime = (runtime - 1.week).at_beginning_of_week
     66:       endtime = runtime.at_beginning_of_week
     67:       @bcc = email_addresses_4_report(User.find_all_by_notify_weekly(1))
     68:       subject_text = 'Weekly'
     69:     when 'M' # monthly
     70:       starttime = (runtime - 1.month).at_beginning_of_month
     71:       endtime = runtime.at_beginning_of_month
     72:       @bcc = email_addresses_4_report(User.find_all_by_notify_monthly(1))
     73:       subject_text = 'Monthly'
     74:     else
     75:       raise 'Report type is required'
     76:     end
     77:
     78:     @bcc = email_addresses_4_report(params[:user]) unless params[:user].blank?
     79:     @subject = "[#{ENV['EPFWIKI_APP_NAME']}] #{subject_text} Summary"
     80:
     81:     items = UserVersion.find(:all, :conditions => ['created_on > ? and created_on < ?', starttime, endtime ]) +
     82:     Comment.find(:all, :conditions => ['created_on > ? and created_on < ?', starttime, endtime ]) +
     83:     Upload.find(:all, :conditions => ['created_on > ? and created_on < ?', starttime, endtime ]) +
     84:     Wiki.find(:all, :conditions => ['created_on > ? and created_on < ?', starttime, endtime ])+
     85:     Update.find(:all, :conditions => ['created_on > ? and created_on < ?', starttime, endtime ]) +
     86:     User.find(:all, :conditions => ['created_on > ? and created_on < ?', starttime, endtime ]) +
     87:     WikiPage.find(:all, :conditions => ['created_on > ? and created_on < ? and tool=?', starttime, endtime, 'Wiki'])
     88:     Checkout.find(:all)
     89:     items.sort_by {|item|item.created_on}
     90:     @body['wikis'] = []
     91:     items.each do |item|
     92:       logger.debug("item: #{item.inspect}")
     93:       w = nil
     94:       case item.class.name
     95:       when Comment.name then w = item.site
     96:       when Wiki.name then w = item
     97:       when Update.name then w = item.wiki
     98:       when Checkout.name then w = item.site
     99:       when Version.name then w = item.wiki
    100:       end
    101:       @body['wikis'] << w if !w.nil?
    102:     end
    103:     @body['wikis'] = @body['wikis'].uniq
    104:     @from               = ENV['EPFWIKI_REPLY_ADDRESS']
    105:     @sent_on            = Time.now
    106:     @body['runtime']    = runtime
    107:     @body['endtime']    = endtime
    108:     @body['starttime']  = starttime
    109:     @body['contributions']   = items
    110:     @body['subject']    = subject
    111:     @body['admin']      = User.find_central_admin
    112:     @body['host']       = ENV['EPFWIKI_HOST']
    113:     @body['items'] = items
    114:   end

welcome_pw_confirmationlink(user, request_host = ENV['EPFWIKI_HOST'])

[Source]

        # File app/models/notifier.rb, line 19
    19:   def welcome_pw_confirmationlink(user, request_host = ENV['EPFWIKI_HOST'])
    20:     content_type "text/html"
    21:     @recipients = user.email
    22:     @from = ENV['EPFWIKI_REPLY_ADDRESS']
    23:     @subject =  "[" + ENV['EPFWIKI_APP_NAME'] + "] Welcome"
    24:     @body['user'] = user
    25:     @body['admin'] = User.find_central_admin
    26:     @body['subject'] = @subject
    27:     @body['request_host'] = request_host
    28:   end

[Validate]