Show More
Commit Description:
still upgrading
Commit Description:
still upgrading
References:
File last commit:
Show/Diff file:
Action:
app/controllers/login_controller.rb | 63 lines | 1.8 KiB | text/x-ruby | RubyLexer |
class LoginController < ApplicationController
def index
# show login screen
reset_session
redirect_to :controller => 'main', :action => 'login'
end
def login
user = User.authenticate(params[:login], params[:password])
unless user
flash[:notice] = 'Wrong password'
redirect_to :controller => 'main', :action => 'login'
return
end
if (!GraderConfiguration['right.bypass_agreement']) and (!params[:accept_agree]) and !user.admin?
flash[:notice] = 'You must accept the agreement before logging in'
redirect_to :controller => 'main', :action => 'login'
return
end
#process logging in
session[:user_id] = user.id
session[:admin] = user.admin?
# clear forced logout flag for multicontests contest change
if GraderConfiguration.multicontests?
contest_stat = user.contest_stat
if contest_stat.respond_to? :forced_logout
if contest_stat.forced_logout
contest_stat.forced_logout = false
contest_stat.save
end
end
end
#save login information
Login.create(user_id: user.id, ip_address: request.remote_ip)
redirect_to :controller => 'main', :action => 'list'
end
def site_login
begin
site = Site.find(params[:login][:site_id])
rescue ActiveRecord::RecordNotFound
site = nil
end
if site==nil
flash[:notice] = 'Wrong site'
redirect_to :controller => 'main', :action => 'login' and return
end
if (site.password) and (site.password == params[:login][:password])
session[:site_id] = site.id
redirect_to :controller => 'site', :action => 'index'
else
flash[:notice] = 'Wrong site password'
redirect_to :controller => 'site', :action => 'login'
end
end
end