diff --git a/app/controllers/subjects_controller.rb b/app/controllers/subjects_controller.rb index 825040528..864c2c426 100644 --- a/app/controllers/subjects_controller.rb +++ b/app/controllers/subjects_controller.rb @@ -81,6 +81,7 @@ class SubjectsController < ApplicationController def show @user = current_user @is_creator = current_user.creator_of_subject?(@subject) + @is_manager = @user.manager_of_subject?(@subject) # 合作团队 @members = @subject.subject_members.includes(:user) @shixuns = @subject.shixuns.published.pluck(:id) diff --git a/app/models/user.rb b/app/models/user.rb index 7f724d081..9c3d1af39 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -263,9 +263,9 @@ class User < ApplicationRecord course&.course_members.exists?(user_id: id) end - # 实训路径管理员:创建者或admin + # 实训路径管理员 def creator_of_subject?(subject) - subject.user_id == id || admin? + subject.user_id == id end # 实训路径:合作者、admin diff --git a/app/views/subjects/show.json.jbuilder b/app/views/subjects/show.json.jbuilder index d93ee62f9..af524f5b3 100644 --- a/app/views/subjects/show.json.jbuilder +++ b/app/views/subjects/show.json.jbuilder @@ -5,12 +5,12 @@ json.challenges_count @subject.subject_challenge_count json.subject_score @subject.all_score json.member_count @subject.member_count -json.allow_delete @is_creator && (@subject.status != 2 || @user.admin?) +json.allow_delete (@subject.status != 2 && @is_creator) || @user.admin? json.publish_status publish_status(@subject, @is_creator, @user, @shixuns) -json.allow_statistics @user.manager_of_subject?(@subject) +json.allow_statistics @is_manager json.allow_send @user.logged? -json.allow_visit @user.manager_of_subject?(@subject) || @user.admin? || @subject.status > 1 -json.allow_add_member @user.manager_of_subject?(@subject) +json.allow_visit @subject.status > 1 || @is_manager +json.allow_add_member @is_manager json.members @members do |member| json.partial! 'subject_member', locals: { user: member.user }