app/controllers/devise/invitations_controller.rb in devise_invitable-1.1.6 vs app/controllers/devise/invitations_controller.rb in devise_invitable-1.1.7

- old
+ new

@@ -1,10 +1,11 @@ class Devise::InvitationsController < DeviseController before_filter :authenticate_inviter!, :only => [:new, :create] before_filter :has_invitations_left?, :only => [:create] - before_filter :require_no_authentication, :only => [:edit, :update] + before_filter :require_no_authentication, :only => [:edit, :update, :destroy] + before_filter :resource_from_invitation_token, :only => [:edit, :destroy] helper_method :after_sign_in_path_for # GET /resource/invitation/new def new build_resource @@ -23,16 +24,11 @@ end end # GET /resource/invitation/accept?invitation_token=abcdef def edit - if params[:invitation_token] && self.resource = resource_class.to_adapter.find_first( :invitation_token => params[:invitation_token] ) - render :edit - else - set_flash_message(:alert, :invitation_token_invalid) - redirect_to after_sign_out_path_for(resource_name) - end + render :edit end # PUT /resource/invitation def update self.resource = resource_class.accept_invitation!(resource_params) @@ -44,10 +40,17 @@ respond_with resource, :location => after_accept_path_for(resource) else respond_with_navigational(resource){ render :edit } end end + + # GET /resource/invitation/remove?invitation_token=abcdef + def destroy + resource.destroy + set_flash_message :notice, :invitation_removed + redirect_to after_sign_out_path_for(resource_name) + end protected def current_inviter @current_inviter ||= authenticate_inviter! end @@ -57,7 +60,15 @@ build_resource set_flash_message :alert, :no_invitations_remaining respond_with_navigational(resource) { render :new } end end + + def resource_from_invitation_token + unless params[:invitation_token] && self.resource = resource_class.to_adapter.find_first(params.slice(:invitation_token)) + set_flash_message(:alert, :invitation_token_invalid) + redirect_to after_sign_out_path_for(resource_name) + end + end + end