foodcoops/foodsoft

View on GitHub
app/controllers/invites_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
class InvitesController < ApplicationController
  before_action :authenticate_membership_or_admin_for_invites
  before_action -> { require_config_disabled :disable_invite }

  def new
    @invite = Invite.new(user: @current_user, group: @group)
  end

  def create
    authenticate_membership_or_admin params[:invite][:group_id]
    @invite = Invite.new(params[:invite])
    if @invite.save
      Mailer.invite(@invite).deliver_now

      respond_to do |format|
        format.html do
          redirect_to root_path, notice: I18n.t('invites.success')
        end
        format.js { render layout: false }
      end

    else
      render action: :new
    end
  end

  protected

  def authenticate_membership_or_admin_for_invites
    authenticate_membership_or_admin(begin
      params[:invite][:group_id]
    rescue StandardError
      params[:id]
    end)
  end
end