Sha256: 7ed3f0ef8a76ac0027d22f8d9a3d300165319f6b666e38b9f2fc1c325b6ea0f8

Contents?: true

Size: 1.62 KB

Versions: 15

Compression:

Stored size: 1.62 KB

Contents

class InvitationsController < ApplicationController
  def new

  end

  def create

    if params[:mails].present?
      receivers = params[:mails].split(/, */)
      if are_valid_emails?(receivers)
        receivers.each do |receiver|
          InvitationMailer.send_invitation(receiver, current_subject, params[:message]).deliver
        end
        render :action => :new, :locals => {:flash => { :success => t('invitation.success')}}
        return
      end
    end
    render :action => :new, :locals => {:flash => { :error => t('invitation.error')}}

  end

  private

  def are_valid_emails?(emails)
    email_regex= /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/
    emails.each do |email|
      if !(email_regex.match(email))
        return false
      end
    end
    return true
  end

end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
social_stream-0.10.4 base/app/controllers/invitations_controller.rb
social_stream-base-0.9.14 app/controllers/invitations_controller.rb
social_stream-0.10.3 base/app/controllers/invitations_controller.rb
social_stream-base-0.9.13 app/controllers/invitations_controller.rb
social_stream-0.10.2 base/app/controllers/invitations_controller.rb
social_stream-base-0.9.12 app/controllers/invitations_controller.rb
social_stream-0.10.1 base/app/controllers/invitations_controller.rb
social_stream-0.10.0 base/app/controllers/invitations_controller.rb
social_stream-base-0.9.11 app/controllers/invitations_controller.rb
social_stream-0.9.7 base/app/controllers/invitations_controller.rb
social_stream-base-0.9.10 app/controllers/invitations_controller.rb
social_stream-0.9.6 base/app/controllers/invitations_controller.rb
social_stream-base-0.9.9 app/controllers/invitations_controller.rb
social_stream-0.9.5 base/app/controllers/invitations_controller.rb
social_stream-base-0.9.8 app/controllers/invitations_controller.rb