diff --git a/src/sunstone/sunstone-server.rb b/src/sunstone/sunstone-server.rb index f855f3e0bc..0f8440a631 100755 --- a/src/sunstone/sunstone-server.rb +++ b/src/sunstone/sunstone-server.rb @@ -36,7 +36,7 @@ use Rack::Session::Pool ############################################################################## helpers do def authorized? - session["ip"] && session["ip"]==request.ip ? true : false + session[:ip] && session[:ip]==request.ip ? true : false end def build_session @@ -47,12 +47,11 @@ helpers do rc = SunstoneServer.authorize(user, sha1_pass) if rc[1] - session["user"] = user - session["user_id"] = rc[1] - session["password"] = sha1_pass - session["ip"] = request.ip - session["user_agent"] = request.user_agent - session["remember"] = params[:remember] + session[:user] = user + session[:user_id] = rc[1] + session[:password] = sha1_pass + session[:ip] = request.ip + session[:remember] = params[:remember] if params[:remember] env['rack.session.options'][:expire_after] = 30*60*60*24 @@ -77,14 +76,14 @@ before do unless request.path=='/login' || request.path=='/' halt 401 unless authorized? - @SunstoneServer = SunstoneServer.new(session["user"], session["password"]) + @SunstoneServer = SunstoneServer.new(session[:user], session[:password]) end end after do unless request.path=='/login' || request.path=='/' - unless session['remember'] - if params[:timeout] === true + unless session[:remember] + if params[:timeout] == true env['rack.session.options'][:defer] = true else env['rack.session.options'][:expire_after] = 60*10 @@ -98,9 +97,15 @@ end ############################################################################## get '/' do redirect '/login' unless authorized? + time = Time.now + 60 - response.set_cookie("one-user", :value=>"#{session['user']}", :expires=>time) - response.set_cookie("one-user_id", :value=>"#{session['user_id']}", :expires=>time) + response.set_cookie("one-user", + :value=>"#{session[:user]}", + :expires=>time) + response.set_cookie("one-user_id", + :value=>"#{session[:user_id]}", + :expires=>time) + File.read(File.dirname(__FILE__)+'/templates/index.html') end @@ -119,6 +124,17 @@ post '/logout' do destroy_session end +############################################################################## +# Config and Logs +############################################################################## +get '/config' do + @SunstoneServer.get_configuration(session[:user_id]) +end + +get '/vm/:id/log' do + @SunstoneServer.get_vm_log(params[:id]) +end + ############################################################################## # GET Pool information ############################################################################## @@ -154,13 +170,3 @@ post '/:resource/:id/action' do @SunstoneServer.perform_action(params[:resource], params[:id], request.body.read) end -############################################################################## -# Config and Logs -############################################################################## -get '/config' do - @SunstoneServer.get_configuration(session["user_id"]) -end - -get '/vm/:id/log' do - @SunstoneServer.get_vm_log(params[:id]) -end