diff --git a/app.rb b/app.rb index b593becb1193c23eaee1077a2dd9ac048fad8e32..1dfd3109f74a08adcce6f2cfc053a76f5f2bf457 100644 --- a/app.rb +++ b/app.rb @@ -1,4 +1,6 @@ require 'sinatra' +require 'models/user' +require 'models/service_space' use Rack::Session::Cookie, :key => 'rack.session', :path => '/', @@ -34,9 +36,45 @@ before do ] session[:init] = true + + # check if the user is currently logged in + if session.has_key?(:user_id) + @user = (User.includes(:permissions).find(session[:user_id]) rescue nil) + else + @user = nil; + end +end + +helpers do + def load_service_space + url_name = params[:service_space_url_name] + space = ServiceSpace.find_by(:url_name => url_name) + raise Sinatra::NotFound if space.nil? + @space = space + end + + def require_login + if @user.nil? + flash(:alert, 'You Must Login', 'That page requires you to be logged in. If you don\'t have an account, please sign up for <a href="/new_members/">New Member Orientation</a>.') + redirect '/login/' + end + end +end + +not_found do + @breadcrumbs << {:text => 'Not Found'} + erb 'That page was not found.', :layout => :fixed +end + +error do + @breadcrumbs << {:text => 'Error'} + flash(:danger, 'Sorry! There was an error.', "We apologize. A really bad error occurred and it didn't work. We're fixing this as we speak.") + erb 'In the meantime, you can <a href="/">go back to the homepage</a>.', :layout => :fixed end get '/' do @breadcrumbs << {:text => 'Home'} - 'Home' -end \ No newline at end of file + erb 'Home', :layout => :fixed +end + +Dir.glob("#{ROOT}/routes/*.rb") { |file| require file } \ No newline at end of file