class ApplicationController < ActionController::Base

	before_filter :require_login

	def require_login
		if authenticated?
			create_new_authentification()
		else
			unless controller_name == 'sessions' && (action_name == 'new' || action_name == 'create')
				flash.now[:error] = I18n.t 'login.access-denied'
				render "sessions/new"
			end
		end
	end

	protected

	def authenticated?
		!! Token.authenticate(session)
	end

	def create_new_authentification
		Token.remove_old_session(session[:token])

		session[:token] = Token.generate_token()
		session[:created_at] = Time.now
		session[:ip] = request.remote_ip

		Token.save_session(session)
	end
end