diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 089960e76..8402c05f0 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -26,28 +26,32 @@ class CoursesController < ApplicationController def join if User.current.logged? course = Course.find_by_id params[:object_id] - unless course - @state = 4 - else - unless (allow_join(course) && User.current.member_of_course?(course)) - if params[:course_password] == course.password - members = [] - members << Member.new(:role_ids => [10], :user_id => User.current.id) - course.members << members - StudentsForCourse.create(:student_id => User.current.id, :course_id => params[:object_id]) - @state = 0 + if course + if course_endTime_timeout? course + @state = 2 + else + if User.current.member_of_course?(course) + @state = 3 else - @state = 1 + if params[:course_password] == course.password + members = [] + members << Member.new(:role_ids => [10], :user_id => User.current.id) + course.members << members + StudentsForCourse.create(:student_id => User.current.id, :course_id => params[:object_id]) + @state = 0 + else + @state = 1 + end end - else - @state = 3 end + else + @state = 4 end else @state = 5 end respond_to do |format| - format.js { render :partial => 'set_join', :locals => {:user => User.current, :course => Course.find(params[:object_id]), :object_id => params[:object_id]} } + format.js { render :partial => 'set_join', :locals => {:user => User.current, :course => course, :object_id => params[:object_id]} } end rescue Exception => e @state = 4