forked from Trustie/forgeplus
Merge branch 'dev_military_server_local' into dev_jk_server
This commit is contained in:
commit
e4ec205890
|
|
@ -48,9 +48,11 @@ class CompetitionInfosController < ApplicationController
|
|||
|
||||
def enroll_list
|
||||
competition_users = CompetitionUser.where(competition_info: @competition_info.id).order("updated_at desc")
|
||||
competition_users = competition_users.where(zone: manager_competition_zones)
|
||||
zones = @competition_info.manager_zones(current_user)
|
||||
if params[:zone].present?
|
||||
competition_users = competition_users.where(zone: params[:zone].to_s)
|
||||
competition_users = zones.include?(params[:zone].to_s) ? competition_users.where(zone: params[:zone].to_s) : competition_users.where(zone: [])
|
||||
else
|
||||
competition_users = current_user.admin? ? competition_users : competition_users.where(zone: zones)
|
||||
end
|
||||
if params[:sub_competition].present?
|
||||
competition_users = competition_users.where(sub_competition: params[:sub_competition].to_s)
|
||||
|
|
@ -148,7 +150,7 @@ class CompetitionInfosController < ApplicationController
|
|||
if current_user.admin?
|
||||
@competition_info.competition_zones
|
||||
else
|
||||
@competition_info.manager_zones(current_user.id)
|
||||
@competition_info.manager_zones(current_user)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -34,15 +34,23 @@ class CompetitionInfo < ApplicationRecord
|
|||
end
|
||||
|
||||
# 管理员配置方式:id:赛区名称,id:赛区名称
|
||||
def manager_zones(user_id)
|
||||
def manager_zones(user)
|
||||
return self.competition_zones if user.admin?
|
||||
return [] if self.manager_ids.blank?
|
||||
zones = []
|
||||
managers = manager_ids.split(",")
|
||||
managers.each do |u|
|
||||
zones.push(u.split(":")[1]) if u.split(":")[0].to_s == user_id.to_s
|
||||
zones.push(u.split(":")[1]) if u.split(":")[0].to_s == user.id.to_s
|
||||
end
|
||||
zones
|
||||
end
|
||||
|
||||
# 管理员配置方式:id:赛区名称,id:赛区名称
|
||||
def is_manager?(user)
|
||||
return true if user.admin?
|
||||
managers = manager_ids.split(",")
|
||||
managers.select { |u| u.split(":")[0].to_s == user.id.to_s }.size > 0
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -4,4 +4,6 @@ json.data do
|
|||
json.extract! @competition_info, :id, :identifier, :title, :content, :video_url, :is_local, :enroll_date, :upload_date, :guide, :about_us
|
||||
json.zones @competition_info.competition_zones
|
||||
json.sub_competitions @competition_info.sub_competitions.to_s.split(",")
|
||||
json.is_manager? @competition_info.is_manager?(current_user)
|
||||
json.manager_zones @competition_info.manager_zones(current_user)
|
||||
end
|
||||
Loading…
Reference in New Issue