From f74e2cd231c6af19047cfef12a571bdaddbcd4ad Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Thu, 19 Sep 2019 11:22:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E6=94=BE=E8=AF=BE=E7=A8=8B=E8=AE=BF?= =?UTF-8?q?=E9=97=AE=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 11 +++++++++++ app/models/user.rb | 23 +++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 2ce52d405..8797c4074 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -14,6 +14,7 @@ class ApplicationController < ActionController::Base #before_action :check_account DCODES = %W(2 3 4 5 6 7 8 9 a b c f e f g h i j k l m n o p q r s t u v w x y z) + OPENKEY = "79e33abd4b6588941ab7622aed1e67e8" helper_method :current_user @@ -246,6 +247,16 @@ class ApplicationController < ActionController::Base User.current = find_current_user uid_logger("user_setup: " + (User.current.logged? ? "#{User.current.try(:login)} (id=#{User.current.try(:id)})" : "anonymous")) + # 开放课程通过链接访问的用户 + if !User.current.logged? && !params[:chinaoocTimestamp].blank? && !params[:websiteName].blank? && !params[:chinaoocKey].blank? + content = "#{OPENKEY}#{params[:websiteName]}#{params[:chinaoocTimestamp]}" + if Digest::MD5.hexdigest(content) == params[:chinaoocKey] + user = User.open_class_user + start_user_session(user) if user + User.current = user + end + end + if !User.current.logged? && Rails.env.development? User.current = User.find 1 end diff --git a/app/models/user.rb b/app/models/user.rb index 12759ea4d..ebf68cce6 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -610,6 +610,29 @@ class User < ApplicationRecord admin? || business? end + # 149课程的评审用户数据创建(包含创建课堂学生) + def open_class_user + user = User.find_by(login: "OpenClassUser") + unless user + ActiveRecord::Base.transaction do + user_params = {status: 1, login: "OpenClassUser", lastname: "开放课程", + nickname: "开放课程", professional_certification: 1, certification: 1, grade: 0, + password: "12345678", phone: "11122223333", profile_completed: 1} + user = User.create!(user_params) + + UserExtension.create!(user_id: user.id, gender: 0, school_id: 117, :identity => 1, :student_id => "openclassuser") + + subject = Subject.find_by(id: 149) + if subject + subject.courses.each do |course| + CourseMember.create!(course_id: course.id, role: 4, user_id: user.id) if !course.course_students.exists?(user_id: user.id) + end + end + end + end + user + end + protected def validate_password_length # 管理员的初始密码是5位