80 lines
2.0 KiB
Ruby
80 lines
2.0 KiB
Ruby
|
class BaristaController < ApplicationController
|
||
|
|
||
|
append_before_filter :ensure_post, :only => [ 'add', 'delete', 'edit' ]
|
||
|
append_before_filter :add_refresh_link, :only => [ 'index' ]
|
||
|
append_before_filter :find_fund, :only => [ 'index' ]
|
||
|
|
||
|
##
|
||
|
# Lists all of the baristas in the system
|
||
|
#
|
||
|
def index
|
||
|
@pages, @baristas = paginate :baristas, :order => 'baristas.name ASC',
|
||
|
:per_page => 10, :include => 'fund'
|
||
|
add_related_function 'Create Barista',
|
||
|
("dojo.widget.byId('baristaDialog').show();" +
|
||
|
"dojo.byId('barista_name').focus()")
|
||
|
end
|
||
|
|
||
|
##
|
||
|
# Adds a new barista to the system.
|
||
|
#
|
||
|
def add
|
||
|
b = Barista.new params['barista']
|
||
|
|
||
|
begin
|
||
|
b.save!
|
||
|
flash[:info] = 'Successfully created a new barista!'
|
||
|
rescue => exception
|
||
|
flash[:error] = "Failed to create the barista: #{exception.to_s}"
|
||
|
end
|
||
|
|
||
|
goto_index
|
||
|
end
|
||
|
|
||
|
def delete
|
||
|
# not implemented yet
|
||
|
end
|
||
|
|
||
|
def edit
|
||
|
# nothing to edit, only the password really. and there's none of that now
|
||
|
end
|
||
|
|
||
|
##
|
||
|
# This method will identify the user -- basically an authenticate.
|
||
|
#
|
||
|
def identify
|
||
|
# user should probably not be here if they are already authenticated
|
||
|
goto_default_redirect_url if authenticated?
|
||
|
|
||
|
if request.post?
|
||
|
# mirror mirror on the wall, who is da funkiest of them all?
|
||
|
user_to_auth = Barista.find :first, :conditions => [ "name = ?",
|
||
|
params[:name] ]
|
||
|
|
||
|
if user_to_auth.nil?
|
||
|
# busted
|
||
|
flash.now[:error] = "You're going to have to try harder than that."
|
||
|
else
|
||
|
# ballin'
|
||
|
session[:authenticated] = true
|
||
|
session[:barista] = user_to_auth
|
||
|
flash[:info] = "Welcome to the Grindable!"
|
||
|
|
||
|
# shot callin'
|
||
|
goto_default_redirect_url
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
##
|
||
|
# This method should reset the user state to basic -- a deauthenticate.
|
||
|
#
|
||
|
def anonymize
|
||
|
# blank out all knowledge of the user
|
||
|
reset_session
|
||
|
|
||
|
# go home
|
||
|
goto_default_redirect_url
|
||
|
end
|
||
|
end
|