From 8cce3e27ba4a63693627e1ca233dab05280e8217 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Mon, 29 Apr 2019 16:57:27 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E9=9A=90=E8=97=8F=E5=92=8C=E5=B7=B2?= =?UTF-8?q?=E7=BB=8F=E5=88=A0=E9=99=A4=E7=9A=84=E5=AE=9E=E8=AE=AD=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E9=80=9A=E8=BF=87=E8=BF=9E=E6=8E=A5=E8=AE=BF?= =?UTF-8?q?=E9=97=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/challenges_controller.rb | 2 +- app/models/shixun.rb | 7 ++++++- app/services/games_service.rb | 3 ++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/controllers/challenges_controller.rb b/app/controllers/challenges_controller.rb index 685f9f74..df1da6ca 100644 --- a/app/controllers/challenges_controller.rb +++ b/app/controllers/challenges_controller.rb @@ -467,7 +467,7 @@ class ChallengesController < ApplicationController render_404 return else - if (@shixun.status == 0 && !User.current.manager_of_shixun?(@shixun)) || @shixun.status == -1 + if (@shixun.status == 0 && !User.current.manager_of_shixun?(@shixun)) || (!@shixun.operable? && !User.current.admin?) render_403 return end diff --git a/app/models/shixun.rb b/app/models/shixun.rb index 54882be1..c7d0460a 100644 --- a/app/models/shixun.rb +++ b/app/models/shixun.rb @@ -62,13 +62,18 @@ class Shixun < ActiveRecord::Base include ApplicationHelper has_many :tidings, :as => :container, :dependent => :destroy - scope :visible, -> { where(status: -1) } + #scope :visible, -> { where(status: -1) } after_create :send_tiding def should_compile? self.mirror_repositories.published_main_mirror.first.try(:should_compile) end + # 可供使用的实训 + def operable? + self.status != -1 && !self.hidden + end + def is_published? self.status > 1 ? true : false end diff --git a/app/services/games_service.rb b/app/services/games_service.rb index bddb03b7..f172edbd 100644 --- a/app/services/games_service.rb +++ b/app/services/games_service.rb @@ -17,7 +17,8 @@ class GamesService myshixun = Myshixun.min.find(game.myshixun_id) shixun = Shixun.min.find(myshixun.shixun_id) - unless (myshixun.user_id == current_user.id || current_user.admin? || current_user.business? || current_user.id == shixun.try(:user_id) || current_user.is_certification_teacher) + unless ((myshixun.user_id == current_user.id || current_user.business? || current_user.id == shixun.try(:user_id) || + current_user.is_certification_teacher) && (shixun.operable?)) || current_user.admin? return{:status => 403} end game_challenge = Challenge.min.find(game.challenge_id) From b49c1f57527f3a62b86c6a84068cf456e4782d63 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 30 Apr 2019 11:21:51 +0800 Subject: [PATCH 2/6] 1 --- app/controllers/challenges_controller.rb | 4 +++- app/models/shixun.rb | 1 + app/views/challenges/_content_list.html.erb | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/controllers/challenges_controller.rb b/app/controllers/challenges_controller.rb index df1da6ca..76f7b080 100644 --- a/app/controllers/challenges_controller.rb +++ b/app/controllers/challenges_controller.rb @@ -2,7 +2,7 @@ class ChallengesController < ApplicationController layout "base_shixun" # 如要添加或修改before_filter时,请将handle_openi_request这个before_filter放至第一位 - before_filter :handle_openi_request, if: -> { user_login_and_from_openi? }, only: [:index] + #before_filter :handle_openi_request, if: -> { user_login_and_from_openi? }, only: [:index] before_filter :check_authentication, :except => [:index] before_filter :find_shixun, :only => [:index, :new, :create, :destroy, :challenge_build, :update_evaluation, :add_choose_question, :new_choose_question, :choose_type_show, :edit_choose_question, :update_choose_question, :destroy_challenge_choose] @@ -467,6 +467,8 @@ class ChallengesController < ApplicationController render_404 return else + logger.info("operable: ##{@shixun.operable?}") + logger.info("@shixun.status: ##{@shixun.status}") if (@shixun.status == 0 && !User.current.manager_of_shixun?(@shixun)) || (!@shixun.operable? && !User.current.admin?) render_403 return diff --git a/app/models/shixun.rb b/app/models/shixun.rb index c7d0460a..85b6a2d4 100644 --- a/app/models/shixun.rb +++ b/app/models/shixun.rb @@ -71,6 +71,7 @@ class Shixun < ActiveRecord::Base # 可供使用的实训 def operable? + logger.info("####") self.status != -1 && !self.hidden end diff --git a/app/views/challenges/_content_list.html.erb b/app/views/challenges/_content_list.html.erb index bc7743de..dec91671 100644 --- a/app/views/challenges/_content_list.html.erb +++ b/app/views/challenges/_content_list.html.erb @@ -13,7 +13,7 @@ <% end %>
全部任务 From 731d8532e47d7d2f714de5c098a95599795ca300 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 30 Apr 2019 11:25:36 +0800 Subject: [PATCH 3/6] 1 --- app/controllers/challenges_controller.rb | 2 +- app/views/challenges/_content_list.html.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/challenges_controller.rb b/app/controllers/challenges_controller.rb index 76f7b080..344976ab 100644 --- a/app/controllers/challenges_controller.rb +++ b/app/controllers/challenges_controller.rb @@ -2,7 +2,7 @@ class ChallengesController < ApplicationController layout "base_shixun" # 如要添加或修改before_filter时,请将handle_openi_request这个before_filter放至第一位 - #before_filter :handle_openi_request, if: -> { user_login_and_from_openi? }, only: [:index] + before_filter :handle_openi_request, if: -> { user_login_and_from_openi? }, only: [:index] before_filter :check_authentication, :except => [:index] before_filter :find_shixun, :only => [:index, :new, :create, :destroy, :challenge_build, :update_evaluation, :add_choose_question, :new_choose_question, :choose_type_show, :edit_choose_question, :update_choose_question, :destroy_challenge_choose] diff --git a/app/views/challenges/_content_list.html.erb b/app/views/challenges/_content_list.html.erb index dec91671..bc7743de 100644 --- a/app/views/challenges/_content_list.html.erb +++ b/app/views/challenges/_content_list.html.erb @@ -13,7 +13,7 @@ <% end %>
全部任务
From 5f8341dcf5f8b65f8b094b248cd99730069afe36 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 30 Apr 2019 11:27:54 +0800
Subject: [PATCH 4/6] 1
---
app/models/shixun.rb | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/app/models/shixun.rb b/app/models/shixun.rb
index 85b6a2d4..439c0e44 100644
--- a/app/models/shixun.rb
+++ b/app/models/shixun.rb
@@ -55,8 +55,9 @@ class Shixun < ActiveRecord::Base
scope :visible, lambda{where(status: [2,3])}
- scope :min, lambda { select([:id, :name, :gpid, :modify_time, :reset_time, :language, :propaedeutics, :status, :identifier, :test_set_permission, :hide_code, :forbid_copy,
- :webssh, :user_id, :code_hidden, :task_pass, :exec_time, :multi_webssh]) }
+ scope :min, lambda { select([:id, :name, :gpid, :modify_time, :reset_time, :language, :propaedeutics, :status, :identifier,
+ :test_set_permission, :hide_code, :forbid_copy, :hidden, :webssh, :user_id, :code_hidden,
+ :task_pass, :exec_time, :multi_webssh]) }
scope :published, lambda{where(status: 2)}
scope :field_for_recommend, lambda{ select([:id, :name, :identifier, :myshixuns_count]) }
From 50d7ed2deb55a522f02451343d62995d91501c96 Mon Sep 17 00:00:00 2001
From: p31729568
+
+<%= increase %>
- +<%= percentage.round(5) %>%
+ +<%= percentage.round(5) %>%
<% elsif increase.zero? %>
<%= increase %>
<%= percentage.round(5) %>%
<% else %>
-
+
<%= increase %>
- <%= percentage.round(5) %>%
+ <%= percentage.round(5) %>%
<% end %>
<% end %>
diff --git a/app/views/managements/schools/_statistics_list.html.erb b/app/views/managements/schools/_statistics_list.html.erb
index 609a1cca..cffb316c 100644
--- a/app/views/managements/schools/_statistics_list.html.erb
+++ b/app/views/managements/schools/_statistics_list.html.erb
@@ -17,7 +17,7 @@
<% @schools.each_with_index do |school, index| %>
- <% p school %><%= (@obj_pages.page - 1) * @obj_pages.per_page + index + 1 %>
+ <%= (@obj_pages.page - 1) * @obj_pages.per_page + index + 1 %>
<%= school['id'] %>
<%= school['name'] %>
<%= school['teacher_count'] %>
diff --git a/app/views/managements/schools/statistics.html.erb b/app/views/managements/schools/statistics.html.erb
index 1597fe45..5a68f75c 100644
--- a/app/views/managements/schools/statistics.html.erb
+++ b/app/views/managements/schools/statistics.html.erb
@@ -4,7 +4,26 @@
class: 'fl task-form-30 task-height-30 mt10', style: 'margin: 10px 10px 10px 25px;' %>
<%= link_to '搜索', 'javascript:void(0)', class: 'fl task-btn task-btn-orange ml5 mt10', onclick: "$('#school_report_search_form').submit();" %>
<%= link_to '清除', 'javascript:clearSearchCondition()', class: 'fl task-btn ml5 mt2 mt10' %>
+
+