class ApplicationController < ActionController::Base include LoggerHelper include LoginHelper include ApplicationHelper before_action :user_setup def generate_code(size) %W(0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m o p q r s t u v w x y z).sample(size).join end def info(status = 0, message, data) case status when 403 message = "您没有访问权限,请先获取相应权限~" when 404 message = "您访问的页面不存在或已被删除" end render :json => { status: status, message: message,data: data} end def current_user User.current end def user_setup User.current = find_current_user p User.current UserOnline.login(session[:request_user_id]) if session[:request_user_id] end def find_current_user if session[:user_id] (User.active.find(session[:user_id]) rescue nil) elsif session_login_user = try_to_token_session session_login_user elsif autologin_user = try_to_autologin autologin_user # 只有当没有重要考试的时候才会走这里登陆 else User.anonymous end end def try_to_token_session session_id = cookies[User::SESSION_ACTION] if session_id.present? user = User.try_to_session_id(session_id) start_user_session(user) if user user end end def try_to_autologin token = cookies[autologin_cookie_name] || request.headers["Authorization"] if token.present? # auto-login feature starts a new session user = User.try_to_autologin(token) # return false if user.present? && helpers.get_exercise_by_user(user).size > 0 # 如果有正在进行的登录限制考试则不走这块 start_user_session(user) if user user end end end