Sha256: 8a324ee838ef588e3428e338f314b5546610f673e5c134e6b40af768025ce37a

Contents?: true

Size: 1.66 KB

Versions: 211

Compression:

Stored size: 1.66 KB

Contents

class InvitationsController < ApplicationController
  before_filter :authenticate_user!

  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

211 entries across 211 versions & 4 rubygems

Version Path
social_stream-2.2.2 base/app/controllers/invitations_controller.rb
social_stream-base-2.2.2 app/controllers/invitations_controller.rb
social_stream-2.2.1 base/app/controllers/invitations_controller.rb
social_stream-base-2.2.1 app/controllers/invitations_controller.rb
social_stream-2.2.0 base/app/controllers/invitations_controller.rb
social_stream-base-2.2.0 app/controllers/invitations_controller.rb
social_stream-2.1.1 base/app/controllers/invitations_controller.rb
social_stream-1.1.12 base/app/controllers/invitations_controller.rb
social_stream-base-1.1.11 app/controllers/invitations_controller.rb
social_stream-2.1.0 base/app/controllers/invitations_controller.rb
social_stream-base-2.1.0 app/controllers/invitations_controller.rb
social_stream-2.0.4 base/app/controllers/invitations_controller.rb
social_stream-base-2.0.4 app/controllers/invitations_controller.rb
social_stream-2.0.3 base/app/controllers/invitations_controller.rb
social_stream-base-2.0.3 app/controllers/invitations_controller.rb
social_stream-1.1.11 base/app/controllers/invitations_controller.rb
social_stream-base-1.1.10 app/controllers/invitations_controller.rb
social_stream-1.1.10 base/app/controllers/invitations_controller.rb
social_stream-base-1.1.9 app/controllers/invitations_controller.rb
social_stream-1.1.9 base/app/controllers/invitations_controller.rb