admins can resend invitations

This commit is contained in:
Raphael Sofaer 2011-03-03 16:59:17 -08:00
parent f0ba62be59
commit 435451bc5b
3 changed files with 15 additions and 6 deletions

View file

@ -1,7 +1,7 @@
class AdminsController < ApplicationController class AdminsController < ApplicationController
before_filter :authenticate_user! before_filter :authenticate_user!
before_filter :redirect_unless_admin before_filter :redirect_unless_admin
def user_search def user_search
user = params[:user] || {} user = params[:user] || {}
user = user.delete_if {|key, value| value.blank? } user = user.delete_if {|key, value| value.blank? }
@ -17,7 +17,10 @@ class AdminsController < ApplicationController
end end
def admin_inviter def admin_inviter
Invitation.create_invitee(:service => 'email', :identifier => params[:identifier]) opts = {:service => 'email', :identifier => params[:identifier]}
existing_user = Invitation.find_existing_user('email', params[:identifier])
opts.merge!(:existing_user => existing_user) if existing_user
Invitation.create_invitee(opts)
flash[:notice] = "invitation sent to #{params[:identifier]}" flash[:notice] = "invitation sent to #{params[:identifier]}"
redirect_to '/admins/user_search' redirect_to '/admins/user_search'
end end

View file

@ -3,7 +3,7 @@ require 'spec_helper'
describe AdminsController do describe AdminsController do
render_views render_views
before do before do
@user = Factory :user @user = Factory :user
sign_in :user, @user sign_in :user, @user
end end
@ -54,11 +54,18 @@ describe AdminsController do
end end
describe '#admin_inviter' do describe '#admin_inviter' do
it 'invites a user' do it 'invites a new user' do
Invitation.should_receive(:create_invitee).with(:service => 'email', :identifier => 'bob@moms.com') Invitation.should_receive(:create_invitee).with(:service => 'email', :identifier => 'bob@moms.com')
get :admin_inviter, :identifier => 'bob@moms.com' get :admin_inviter, :identifier => 'bob@moms.com'
response.should be_redirect response.should be_redirect
end end
it 'passes an existing user to create_invitee' do
Factory.create(:user, :email => 'bob@moms.com')
bob = User.where(:email => 'bob@moms.com').first
Invitation.should_receive(:find_existing_user).with('email', 'bob@moms.com').and_return(bob)
Invitation.should_receive(:create_invitee).with(:service => 'email', :identifier => 'bob@moms.com', :existing_user => bob)
get :admin_inviter, :identifier => 'bob@moms.com'
end
end end
end end
end end

View file

@ -8,7 +8,6 @@ ENV["RAILS_ENV"] ||= 'test'
require File.join(File.dirname(__FILE__), '..', 'config', 'environment') unless defined?(Rails) require File.join(File.dirname(__FILE__), '..', 'config', 'environment') unless defined?(Rails)
require 'helper_methods' require 'helper_methods'
require 'rspec/rails' require 'rspec/rails'
puts require 'rspec'
require 'webmock/rspec' require 'webmock/rspec'
require 'factory_girl' require 'factory_girl'