module Refinery
class UsersController < Devise::RegistrationsController
# Protect these actions behind an admin login
before_filter :redirect?, :only => [:new, :create]
layout 'refinery/layouts/login'
def new
@user = User.new
end
# This method should only be used to create the first Refinery user.
def create
@user = User.new(params[:user])
if @user.create_first
flash[:message] = "
#{t('welcome', :scope => 'refinery.users.create', :who => @user.username).gsub(/\.$/, '')}.
".html_safe
sign_in(@user)
redirect_back_or_default(refinery.admin_root_path)
else
render :new
end
end
protected
def redirect?
if refinery_user?
redirect_to refinery.admin_users_path
elsif refinery_users_exist?
redirect_to refinery.new_refinery_user_session_path
end
end
def refinery_users_exist?
Refinery::Role[:refinery].users.any?
end
end
end