Sha256: 32f12074e13d764b5ccc97daa08deda6b830e0076c0b55b215b25849d11f0920

Contents?: true

Size: 1.62 KB

Versions: 31

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
        redirect_to new_invitation_path, :flash => { :success => t('invitation.success')}
        return
      end
    end
    redirect_to new_invitation_path, :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

31 entries across 31 versions & 2 rubygems

Version Path
social_stream-0.9.4 base/app/controllers/invitations_controller.rb
social_stream-0.9.3 base/app/controllers/invitations_controller.rb
social_stream-base-0.9.7 app/controllers/invitations_controller.rb
social_stream-0.9.2 base/app/controllers/invitations_controller.rb
social_stream-base-0.9.6 app/controllers/invitations_controller.rb
social_stream-base-0.9.5 app/controllers/invitations_controller.rb
social_stream-base-0.9.4 app/controllers/invitations_controller.rb
social_stream-base-0.9.3 app/controllers/invitations_controller.rb
social_stream-base-0.9.2 app/controllers/invitations_controller.rb
social_stream-base-0.9.1 app/controllers/invitations_controller.rb
social_stream-base-0.9.0 app/controllers/invitations_controller.rb
social_stream-base-0.8.2 app/controllers/invitations_controller.rb
social_stream-base-0.8.1 app/controllers/invitations_controller.rb
social_stream-base-0.8.0 app/controllers/invitations_controller.rb
social_stream-base-0.7.11 app/controllers/invitations_controller.rb
social_stream-base-0.7.10 app/controllers/invitations_controller.rb
social_stream-base-0.7.9 app/controllers/invitations_controller.rb
social_stream-base-0.7.8 app/controllers/invitations_controller.rb
social_stream-base-0.7.7 app/controllers/invitations_controller.rb
social_stream-base-0.7.6 app/controllers/invitations_controller.rb