def login
if session[:user_id]!=nil
redirect_to(:action => 'index')
end
end
def attempt_login
if params[:username].present? && params[:password].present?
found_user = User.where(:username => params[:username]).first
if found_user
authorized_user = found_user.authenticate(params[:password])
if authorized_user
flash[:notice] = "Welcome! You are LoggedIn"
session[:user_id] = authorized_user.id
redirect_to(:action => 'index')
return
end
end
found_student = Student.where(:username => params[:username]).first
if found_student
student_id = Student.authenticate(params[:username],params[:password])
if student_id
flash[:notice] = "Welcome! You are LoggedIn"
session[:user_id] = student_id
redirect_to(:action => 'student_index')
return
end
end
found_instructor = Instructor.where(:username => params[:username]).first
if found_instructor
instructor_id = Instructor.authenticate(params[:username],params[:password])
if instructor_id
flash[:notice] = "Welcome! You are LoggedIn"
session[:user_id] = instructor_id
redirect_to(:action => 'instructor_index')
return
end
end
flash[:notice] = "Invalid username/Password combination."
redirect_to(:action => 'login')
end
end
def logout
flash[:notice]="Logged out"
session[:user_id] = nil
redirect_to(:action => "login")
end
とここにある:ここ
は私users_controllerコードです
User
,
Student
および
Instructor
である。どのように3種類のログインしたユーザーを区別しますか?
それは、Student
訪問instructor_index
パスでログインしている場合、その後、学生のIDは、同じIDでInstructor
をロードするために使用されるだろう、とインストラクターのためのビューがレンダリングされている可能性があります。私はそうでないことを示すコードは見当たりません。
私はsession[:user_id]
とsession[:user_type]
の両方を保存するようなシステムを想定していたので、ログインした人物を正確に識別することができます。