anthonymidili/EasyKeep

View on GitHub
app/controllers/users/invitations_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
class Users::InvitationsController < Devise::InvitationsController
  before_action :configure_permitted_parameters, if: :devise_controller?
  before_action :require_owner!, only: [:new, :create]

  def create
    self.resource = invite_resource

    if resource.errors.empty?
      redirect_to company_path, notice: 'Email to invite a new admin has been successfully sent.'
    else
      super
    end
  end

private

  # this is called when creating invitation
  # should return an instance of resource class
  # modified to set invited admin user variables
  def invite_resource
    resource_class.invite!(invite_params, current_inviter) do |invitable|
      invitable.company_id = current_user.company_id
      invitable.is_admin = true
      invitable.require_email = true
      invitable.save
    end
  end

protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:invite) do |u|
      u.permit(:name, :email)
    end
  end
end