Skip to content

Instantly share code, notes, and snippets.

@ka8725
Created September 4, 2012 10:51
Show Gist options
  • Select an option

  • Save ka8725/3620066 to your computer and use it in GitHub Desktop.

Select an option

Save ka8725/3620066 to your computer and use it in GitHub Desktop.
class Group::InvitationsController < ApplicationController
load_resource :group
before_filter :authorize_invitations, only: [:new, :create]
def new
already_invited_user_ids = @group.group_invitations.by_user(current_user).pluck(:invitee_id) | @group.user_ids
@to_invite = { friends: current_user.friends.includes(:profile),
followers: current_user.followers.includes(:profile),
without_ids: already_invited_user_ids }
end
def create
invitee_ids = params[:group_invitation][:invitee_ids]
invitees = User.where(id: invitee_ids)
invitees.each do |invitee|
GroupInvitation.create do |invitation|
invitation.inviter = current_user
invitation.invitee = invitee
invitation.group = @group
end
end
respond_with @group
end
def update
invitation = GroupInvitation.find(params[:id])
invitation.update_attribute(:status, params[:status])
respond_with @group
end
def resource
GroupInvitation.new
end
private
def authorize_invitations
authorize! :invite_users, @group
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment